프로그래머스
-
프로그래머스 단어 변환 자바(java) 풀이 Level 3 BFS/DFS 단어 변환 문제 정리 두 개의 단어 begin, target과 단어의 집합이 있다. 다음 규칙을 이용하여 begin에서 target으로 단어를 변환하는 가장 짧은 변환을 찾으려 한다. 규칙1: 한 번에 한 개의 알파벳만 바꿀 수 있다. 규칙2: words에 있는 단어로만 변환할 수 있다. 최소 몇 단계의 과정을 거쳐 target으로 바꿀 수 있는지 찾아라. 각 단어의 길이는 3 이상 10 이하이며 모든 단어의 길이는 같습니다. words에는 3개 이상 50개 이하의 단어가 있습니다. 변환할 수 없는 경우에는 0을 return 합니다. 문제 풀이 이 문제는 bfs의 개념을 이용하면 생각보다 간단히 풀 수 있습니다. 하지만 그것까지 떠..
[BFS] 프로그래머스 level3 단어 변환 자바 풀이(아주 상세한 설명 포함)프로그래머스 단어 변환 자바(java) 풀이 Level 3 BFS/DFS 단어 변환 문제 정리 두 개의 단어 begin, target과 단어의 집합이 있다. 다음 규칙을 이용하여 begin에서 target으로 단어를 변환하는 가장 짧은 변환을 찾으려 한다. 규칙1: 한 번에 한 개의 알파벳만 바꿀 수 있다. 규칙2: words에 있는 단어로만 변환할 수 있다. 최소 몇 단계의 과정을 거쳐 target으로 바꿀 수 있는지 찾아라. 각 단어의 길이는 3 이상 10 이하이며 모든 단어의 길이는 같습니다. words에는 3개 이상 50개 이하의 단어가 있습니다. 변환할 수 없는 경우에는 0을 return 합니다. 문제 풀이 이 문제는 bfs의 개념을 이용하면 생각보다 간단히 풀 수 있습니다. 하지만 그것까지 떠..
2020.05.11 -
프로그래머스 네트워크 자바(java) 풀이 Level 3 BFS/DFS 네트워크 문제 정리 컴퓨터A와 컴퓨터 B가 연결되있고, 컴퓨터 B와 컴퓨터 C가 연결되있으면 A와 C도 간접적으로 연결되 정보를 주고 받을 수 있다. 따라서 A,B,C는 같은 네트워크 상에 있다고 볼 수 있다. 각 컴퓨터는 0부터 n-1인 정수로 표현된다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]=1 이다. computers[i][i]는 항상 1이다. 문제 풀이 이 문제는 그래프로 바꿔서 생각하면 쉬운 문제입니다. level2에 놔도 될것 같네요 그래프 형태로 생각해서 bfs나 dfs를 이용해 탐색합니다. 저는 bfs를 이용했습니다. 방문하지 않은 경우 bfs를 이용해 탐색합니다. bfs로 이어져 있는..
[BFS] 프로그래머스 level3 네트워크 자바 풀이 (자세한 설명)프로그래머스 네트워크 자바(java) 풀이 Level 3 BFS/DFS 네트워크 문제 정리 컴퓨터A와 컴퓨터 B가 연결되있고, 컴퓨터 B와 컴퓨터 C가 연결되있으면 A와 C도 간접적으로 연결되 정보를 주고 받을 수 있다. 따라서 A,B,C는 같은 네트워크 상에 있다고 볼 수 있다. 각 컴퓨터는 0부터 n-1인 정수로 표현된다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]=1 이다. computers[i][i]는 항상 1이다. 문제 풀이 이 문제는 그래프로 바꿔서 생각하면 쉬운 문제입니다. level2에 놔도 될것 같네요 그래프 형태로 생각해서 bfs나 dfs를 이용해 탐색합니다. 저는 bfs를 이용했습니다. 방문하지 않은 경우 bfs를 이용해 탐색합니다. bfs로 이어져 있는..
2020.05.10 -
프로그래머스 베스트앨범 자바(java) 풀이 Level 3 해시(Hash) 베스트앨범 문제 풀이 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두개씩 모아 베스트 앨범을 출시하려고 한다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록한다. 장르 종류는 100개 미만이다. 장르에 속한 곡이 하나라면, 하나의 곡만 선택한다. 모든 장르는 재생된 횟수가 다르다. => 같은 재생횟수를 가지지 않는다 문제 풀이 HashMap 자료구조를 이용하여 문제를 풀 수 있습니다. 이 자료구조는 순서가 없으며 key, value로 저장합니다. 중복도 없습니다 key값으로 장르이름을 이..
[HashMap] 프로그래머스 level3 베스트앨범 자바 풀이프로그래머스 베스트앨범 자바(java) 풀이 Level 3 해시(Hash) 베스트앨범 문제 풀이 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두개씩 모아 베스트 앨범을 출시하려고 한다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록한다. 장르 종류는 100개 미만이다. 장르에 속한 곡이 하나라면, 하나의 곡만 선택한다. 모든 장르는 재생된 횟수가 다르다. => 같은 재생횟수를 가지지 않는다 문제 풀이 HashMap 자료구조를 이용하여 문제를 풀 수 있습니다. 이 자료구조는 순서가 없으며 key, value로 저장합니다. 중복도 없습니다 key값으로 장르이름을 이..
2020.05.10 -
프로그래머스 H-Index 자바(java) 풀이 Level 2 정렬 H-Index 문제 정리 어떤 과학자의 H-Index: 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값 논문별 인용 횟수는 0회 이상 10,000회 이하이다. 문제 설명 h-index의 정의를 잘 이해하셔야 합니다. 예를들어 {7.8.9.9}가 주어졌다고 합시다. 그러면 여기서 h-index는 몇이 될까요??? 답이 없다고 생각한다면 잘 못 이해하셨습니다. 답은 4 입니다. h값이 인용횟수 안에 있으라는 법은 없습니다. 4번 이상 인용된게 4개 있고 나머지 논문이 4번 이하(0번) 인용되었으므로 최대 h는 4가 맞습니다 문제 풀이 문제 그대로 풀이 하면됩니다. 쉽게 풀이하기..
[정렬] 프로그래머스 level2 H-Index 자바 풀이프로그래머스 H-Index 자바(java) 풀이 Level 2 정렬 H-Index 문제 정리 어떤 과학자의 H-Index: 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값 논문별 인용 횟수는 0회 이상 10,000회 이하이다. 문제 설명 h-index의 정의를 잘 이해하셔야 합니다. 예를들어 {7.8.9.9}가 주어졌다고 합시다. 그러면 여기서 h-index는 몇이 될까요??? 답이 없다고 생각한다면 잘 못 이해하셨습니다. 답은 4 입니다. h값이 인용횟수 안에 있으라는 법은 없습니다. 4번 이상 인용된게 4개 있고 나머지 논문이 4번 이하(0번) 인용되었으므로 최대 h는 4가 맞습니다 문제 풀이 문제 그대로 풀이 하면됩니다. 쉽게 풀이하기..
2020.05.09 -
프로그래머스 타겟넘버 자바(java) 풀이 Level 2 BFS/DFS 타겟넘버 문제 정리 n개의 음이아닌 정수가 있다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 한다. 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하여라 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1이상 50이하의 자연수 이다. 문제 풀이 이 문제가 프로그래머스에는 BFS/DFS로 분류되어 있지만 저는 조합을 이용하여 풀었습니다. 조합을 이용하여 모든 경우의 수를 따져주었습니다. 1,2,...len개 선택하는 경우 모두 따져주었습니다. len(numbers의 개수) 개중 i개 선택하기 예를들어 1개를 선택한다면 1개만 visited가 true로 될 것입니다. 그러면 하나만 더하기..
[조합] 프로그래머스 level2 타겟넘버 자바 풀이프로그래머스 타겟넘버 자바(java) 풀이 Level 2 BFS/DFS 타겟넘버 문제 정리 n개의 음이아닌 정수가 있다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 한다. 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하여라 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1이상 50이하의 자연수 이다. 문제 풀이 이 문제가 프로그래머스에는 BFS/DFS로 분류되어 있지만 저는 조합을 이용하여 풀었습니다. 조합을 이용하여 모든 경우의 수를 따져주었습니다. 1,2,...len개 선택하는 경우 모두 따져주었습니다. len(numbers의 개수) 개중 i개 선택하기 예를들어 1개를 선택한다면 1개만 visited가 true로 될 것입니다. 그러면 하나만 더하기..
2020.05.08 -
프로그래머스 카펫 자바(java) 풀이 Level 2 완전탐색 카펫 문제 정리 카펫은 중앙에는 빨간색, 테두리 1줄은 갈색으로 칠해져 있었다. 카펫의 갈색격자 수, 빨간색 격자 수는 알고 있다. 카펫의 가로, 세로 크기를 순서대로 담아 return 하여라. 카펫의 가로 길이 >= 세로길이 문제 풀이(Solution) level2의 문제이지만 level1이 더 맞지 않나 생각합니다. 카펫의 갈색의 개수와 빨간색의 개수를 더하여 카펫에서 총 격자의 개수를 구합니다. 총 격자 개수의 약수의 쌍을 구합니다. brown=10, red=2 인 경우 총 격자의 개수는 12입니다. 이때 카펫은 다음과 같이 가능합니다(1,12), (2,6), (3,4), (4,3), (6,2), (12,1)하지만 행의 길이가 3보다 작..
[완전탐색, 약수] 프로그래머스 level2 카펫 자바 풀이프로그래머스 카펫 자바(java) 풀이 Level 2 완전탐색 카펫 문제 정리 카펫은 중앙에는 빨간색, 테두리 1줄은 갈색으로 칠해져 있었다. 카펫의 갈색격자 수, 빨간색 격자 수는 알고 있다. 카펫의 가로, 세로 크기를 순서대로 담아 return 하여라. 카펫의 가로 길이 >= 세로길이 문제 풀이(Solution) level2의 문제이지만 level1이 더 맞지 않나 생각합니다. 카펫의 갈색의 개수와 빨간색의 개수를 더하여 카펫에서 총 격자의 개수를 구합니다. 총 격자 개수의 약수의 쌍을 구합니다. brown=10, red=2 인 경우 총 격자의 개수는 12입니다. 이때 카펫은 다음과 같이 가능합니다(1,12), (2,6), (3,4), (4,3), (6,2), (12,1)하지만 행의 길이가 3보다 작..
2020.05.08