https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net [풀이] 문자열을 char 배열로 만든 후, 배열의 값 하나를 int형으로 반환하여 sum 변수에 더했다. 어렵지 않은 문제였기에 주의할 부분은 딱히 없었다. substring() 메소드를 써도 되며 방법은 다양하다. [코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String..
https://www.acmicpc.net/problem/16395 16395번: 파스칼의 삼각형 파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행 www.acmicpc.net [풀이] 2차원 행렬의 열은 행의 숫자보다 하나 더 큰 상태이다. 그러므로 이를 생각해서 for문을 돌면서 dp 2차원 배열에 값을 저장하면 된다. 값을 저장할 때는 [i-1][j-1] + [i-1][j] 값이 곧 [i][j]의 값이므로 풀이를 진행하면 된다. 주의! - DP의 브론즈 난이도 문제이기에 간단한 문제였다. 특별히 신경써야할 부분은 없으며 단지 for 반복문의 인덱스에 대..
https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net [풀이] 처음에, replaceFirst() 메소드를 이용하여 풀었지만, replace를 할 경우 인덱스에 대한 처리를 하지 못해서 다음과 같은 반례에 대처를 하지 못했다. (반례) aabb / ab / 답은 1이 나와야 하는데 2가 나오는 분들이 있을 것이다. 그렇기 때문에 for문을 돌면서 문자열 길이만큼 확인 후, 찾게 되었을 때 인덱스를 문자열 길이만큼 더하는 식으로 풀었다. (주의해야할 부분)..
https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net [풀이] - B와 R을 구분하여 ArrayList에 값을 추가하였다. 이를 통해 B는 몇 개있는지, R은 몇 개 있는지 확인 할 수 있다. - 최소한의 방법은 더 많은 색깔을 전체 칠한 후, 적은 개수의 색깔을 해당하는 위치에 덧칠하는 것이다. 그러므로 각 List의 크기를 비교하면 된다. - size() 메소드에 +1을 하는 이유는 처음 더 많은 수의 색깔을 전체 칠하기 때문이다. (주의해야할..
https://www.acmicpc.net/problem/11060 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net [풀이] 이전 값을 저장할 dp 배열과 입력 값을 저장할 arr 배열을 만들었다. 다음 위치로 점프할 수 있는 거리는 0~arr[i]이다. 그러므로, for 반복문을 돌면서 최소값을 dp 배열에 저장하면 된다. (주의해야할 부분) 다음 위치로 점프할 수 있는 거리는 최소 0부터 arr[i] 까지이다. 그러므로 이 부분에 해당하는 인덱스를 주의해서 풀어야 한다. [코드] public cl..
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net [풀이] 먼저, 문제를 이해하는 과정이 어려웠다. 두번, 세번 읽으면서 문제를 이해하려고 노력했는데 내가 이해한 것을 표로 설명해보면 다음과 같다. (첫번째 예제 입력을 예시로 표를 작성했다.) 연산 과정 Stack1(연산) stack_result(결과) 연산자 push 1 {1} {} + push 2 {1,2} {..