문제 https://www.acmicpc.net/problem/17129 17129번: 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유 첫째 줄에 정보섬 2층의 크기 n과 m이 주어진다. (1 ≤ n,m ≤ 3000, 4 ≤ n×m ≤ 9×106) 이후 n행 m열에 걸쳐 0, 1, 2, 3, 4, 5로만 구성된 Ai,j가 주어진다. Ai,j와 Ai,j+1사이에 공백은 주어지지 않는다. 2, www.acmicpc.net 풀이 BFS + 최단거리로 해결할 수 있었다. 거리를 저장할 배열인 dist와 정보섬의 값을 저장할 배열인 board를 만들어 board를 입력받았다. 이때 해당 정보섬 좌표의 값이 2이면 해당 좌표가 시작점이므로 startX, startY라는 변수에 담아주었다. 이후에는 dist의 배열을 ..
문제 https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 풀이 BFS 최단거리로 해결할 수 있었다. 지도를 관리할 2차원 배열인 board와 각 지점의 거리를 관리할 2차원 배열인 dist를 만들어서 지도를 입력받으면서 해당 좌표의 값이 2이면 그 좌표가 탐색의 시작점이므로 startX, startY라는 변수에 담아주었고, 만약 0이 나와 갈 수 없는 땅이라면 처음부터 거리 배열인 dist에 0을 넣어주..
문제 https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고 programmers.co.kr 풀이 문자열 + 구현으로 해결할 수 있었다. 우선 split 메서드를 사용하여 공백 단위로 문자열을 잘라주고 str이라는 새로운 배열에 담아주었다. 이후에는 str의 모든 원소들을 탐색하면서 해당 문자열의 첫 번째 문자가 숫자이면 다음 인덱스의 문자를 대문자로 만들어주었고, 그게 아니라면 해당 인덱스에 대응하는 문자를..
문제 https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 풀이 자료구조 스택을 활용하여 해결할 수 있었다. 문제를 풀기 이전에 우리는 올바른 괄호의 특징이 여는 괄호와 닫는 괄호의 쌍이 1:1 매칭이 된다는 특징을 알고 가야 한다. 이 점을 이용하여 문자열의 모든 원소들에 대하여 탐색하면서 만약 여는 괄호인 '(' 가 나오면 스택에 넣어주었고, 닫는 괄호인 ')'가 나..