본문 바로가기

전체 글

(96)
[프로그래머스] 단어 변환 with Kotlin 문제 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다.두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지..
[프로그래머스] 네트워크 with Kotlin 문제 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 풀이 과정 1. 1번 컴퓨터부터 연결되어 있는 N번 컴퓨터 DFS 탐색 2. 탐색한 컴퓨터는 중복탐색하지 않도록 따로 저장 3. 1번과 연결된 컴퓨터들에 대한 탐색이 종료되면 탐색하지 않은 컴퓨터를 기준으로 다시 탐색 코드 class Solution { val checkComputer = ArrayList() fun solution(n: Int, computers: Array): Int { var answer = 0 for(i in computers.indices){ if(checkComputer.contains(i)) cont..
[프로그래머스] N-Queen with Kotlin 문제 가로, 세로의 길이가 n인 체스판이 있다. 체스판 위의 n개의 퀸이 서로 공격할 수 없도록 배치했을 때, 배치할 수 있는 경우의 수 반환 풀이 과정 1. n개의 퀸을 배치해야되기 때문에 각 열에는 무조건 하나의 퀸이 있어야 함 2. 위에서부터 각 열의 칸마다 퀸을 배치하여 서로 공격 가능하면 pass 불가능하면 다음 열 탐색 3. 위에서부터 배치하기 때문에 퀸의 공격은 위로만 체크 코드 class Solution { var answer = 0 fun solution(n: Int): Int { if(n == 1) return 1 val chessboard = Array(n){Array(n){0}} dfs(chessboard, 0) return answer } fun dfs(chessboard: Arr..