🔗 문제 링크 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 📖 풀이 과정 - 재귀를 이용한 완전탐색 유형의 문제입니다. - visited라는 boolean 1차원 배열을 선언했습니다. - 크기는 dungeons의 길이로 선언하면 됩니다. - 조건은 2가지 입니다. - 이전에 방문하지 않은 곳이어야 합니다. - 현재 피로도가, 최소 필요 필요도 이상이어야 합니다. - 이 두가지 조건을 유지한채 재귀로 완전탐색을 실시합니다. - 모든 구현이 마치면, count 변수와 answer 변수를 비교하여 최대값..
https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net [풀이] 이분탐색 유형의 문제로 기본 개념을 익히기 좋은 문제라고 생각한다. 파이썬으로도 풀어보고, 자바로 두번째로 풀어보는데 다시 한번 개념을 익힐 수 있었다. A 배열을 입력받은 후, 이분탐색을 하기 이전에 정렬을 하는 것이 첫번째, 이분 탐색 메소드를 정의하는 것이 두번째 단계였다. [코드] import java.io.BufferedReader..
https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net [풀이] 처음에는, 오른쪽으로 인덱스를 진행하면서 현재 값보다 높은 곳의 인덱스를 구해 넓이로 계산하려했다. 하지만, 이렇게 하니, 코드가 복잡해지고 인덱스 계산하는 것이 어려워졌다. 결국 다른 분들의 코드를 참조했고 좌우 기둥의 가장 높은 인덱스를 계산하는 것에 대해 알게 되었다. 좌우 가장 높은 기둥의 인덱스를 각각 구한 후, 더 낮은 곳의 높이에서 현재 인덱스의 기둥을 뺀 ..
https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net [풀이] N과 M은 100만개까지 입력이 가능하므로 '수첩1'을 정렬하여 이분탐색으로 '수첩2'에 해당하는 값을 찾았다. 찾은 값은 StringBuffer에 담았으며 이를 \n을 추가해서 답을 얻었다. 마지막에 \n이 있으면 틀렸다고 나와서 어쩔수 없이 if 조건문에 마지막의 경우 \n을 추가하지 않도록 했다. [코드] import java.io.BufferedReader; import java.io...
https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net [풀이] A의 문자열이 더 짧으므로 B의 문자열의 앞부분부터 A의 문자열 길이만큼 for 반복문으로 비교하면된다. B의 문자열의 인덱스를 시도한 횟수만큼 더해주는 것에 신경써야한다. [주의해야할 부분] 문자열의 인덱스만 신경쓰면 될 것이라 생각한다. [코드] import java.io.*; import java.util.StringTokenizer; publ..
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..