[프로그래머스] 2단계 - 모음 사전
2024. 3. 22. 19:42
Algorithm Study
문제 설명 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U' 만을 사용하여 만들 수 있는 길이 5 이하의 모든 단어가 수록되어 있을 때, 주어지는 단어가 사전에서 몇 번째 단어인지 return 문제 풀이법 재귀를 통해서 문제를 풀 수 있다 "AAAAE"는 6번째 단어인데 이유는 "A" -> "AA" -> "AAA" -> "AAAA" -> "AAAAA" -> "AAAAE" 이기 때문이다 문자열 뒤에 계속해서 글자를 붙여주며, 재귀를 돌면 해당 사전을 만들 수 있다 재귀의 탈출 조건은 글자 길이가 5 이상이거나, target 문자열과 현재 문자열이 같을 때이다 target 문자열과 현재 문자열이 같으면 answer을 저장해야한다 탈출 조건에 부합하지 않으면 몇 번째 단어인지 cnt + 1 해주고..
[프로그래머스] 3단계 - 단어 변환
2024. 3. 22. 18:55
Algorithm Study
문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 변환할 수 있는지 return https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 dfs로 풀 수 있는 문제이다 한 번에 한 개의 알파벳만 바꿀 수 있다는 문구가 핵심이다 우선 dfs를 돌기 전에 words에서 target 단어가 있는지 검사 해주었다 없으면 변환할 수 없으므로 바로 0을 return 해주었다..
[프로그래머스] 3단계 - 야근 지수
2024. 3. 19. 18:59
Algorithm Study
문제 설명 1시간 동안 작업량 1만큼을 처리할 수 있을때, 야근 피로도를 계산하여 최소화 한 값을 return https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 야근 피로도는 남은 일의 작업량을 제곱하여 더한 값이다 문제에서 원하는 것은 야근 피로도를 최소화 한 값이므로 최대한 큰 수를 작게 만들어서 제곱 시에 값이 커지는 것을 막는게 핵심이다 따라서 우선순위 큐를 사용하여, 항상 값을 내림차순으로 정렬하도록 한다 작업량이 다 끝날 ..
[프로그래머스] 2단계 - 연속 부분 수열 합의 개수
2024. 3. 19. 18:24
Algorithm Study
문제 설명 원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수 return https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 queue를 사용하면 쉽게 풀 수 있다 만일 예시고 [7, 9, 1, 1, 4]라는 수가 들어오면 - 길이가 1인 연속 부분 수열의 합 [7, 9, 1, 1, 4] - 길이가 2인 연속 부분 수열의 합 [16, 10, 2, 5, 11] ... 이런식으로 연속 부분 수열의 합이 나오는데 잘 보면 que..
[프로그래머스] 2단계 - 오픈채팅방
2024. 3. 13. 19:37
Algorithm Study
문제 설명 채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열이 주어질 때, 모든 기록이 처리된 후 최종적으로 방을 개설한 사람이 보게 되는 메세지를 return https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 문제에서 닉네임이 주어질때 그 옆에 uid가 함께 주어지는데 이를 활용하면 된다 주어진 배열 record를 먼저 순회하기 전에 pair이라는 벡터와 m이라는 맵을 하나 생성했는데, pair에는 first에는..
[프로그래머스] 2단계 - 뒤에 있는 큰 수 찾기
2024. 3. 11. 19:25
Algorithm Study
문제 설명 배열의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이에 있는 수를 뒷 큰수라고 할 때, 모든 원소들에 대한 뒷 큰수를 담을 배열을 return https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 stack을 사용하면 쉽게 풀 수 있다 주어진 배열의 맨 끝에서부터 탐색하는데, 만일 stack이 비어있다면 뒷 큰수가 없다는 뜻이므로 answer에 -1을 담고 stack에 자신을 담는다 비어있지 ..
[프로그래머스] 2단계 - 더 맵게
2024. 3. 11. 19:08
Algorithm Study
문제 설명 모든 음식이 스코빌 지수를 K 이상이 될 때 까지 반복해서 섞을 때, 섞어야 하는 최소 횟수를 return https://school.programmers.co.kr/learn/courses/30/lessons/42626# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 스코빌 지수가 항상 정렬이 되어야 했기 때문에 priority_queue를 사용하여 정렬 상태를 유지해 주었다 큐에 들어있는 값이 1개가 될 때 까지 음식을 섞어주면 되는데, 이때 맨 앞의 값이 K보다 크면 다른 음식들의 스코빌 지수도 모두 K보다 크다는 것이 보장이..
[프로그래머스] 3단계 - 이중우선순위큐
2024. 3. 9. 21:37
Algorithm Study
문제 설명 이중 우선순위큐가 할 연산이 매개변수로 주어질 때, 모든 연산을 처리한 후 [최댓값, 최솟값]을 return https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 문제 제목부터 주어진 우선순위 큐로 문제를 해결하는 방법이 있고, 그냥 벡터로 푸는 방법 2가지가 있다 우선 우선순위 큐로 푸는 방법은 최소값을 기준으로 하는 우선순위 큐와, 최대값을 기준으로 하는 우선순위 큐 2개가 필요하다 만일 I 명령어가 주어지면 최소값 큐와,..
[프로그래머스] 2단계 - 카펫
2024. 2. 17. 21:54
Algorithm Study
문제 설명 카펫의 갈색 격자의 수와 노란색 격자의 수가 주어졌을 때 카펫의 가로, 세로 크기를 return https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 우선 가로 세로의 크기를 탐색하기 위해서 이중 for문을 두었다 겉의 for문은 가로의 길이고, 안의 for문은 세로의 길이이다 문제에서 가로의 길이가 세로의 길이보다 같거나 더 길다고 했으니, 안의 for문이 끝나는 조건은 세로의 길이가 가로의 길이보다 클 때이다 'brown ..
[프로그래머스] 2단계 - [1차] 뉴스 클러스터링
2024. 2. 16. 21:53
Algorithm Study
문제 설명 두 문장의 자카드 유사도 return https://school.programmers.co.kr/learn/courses/30/lessons/17677# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 처음에는 map으로 구현을 했다가 map의 키 값으로 합집합을 구하는 실수를 해버렸다 이후에는 map에 있는 값을 중복을 제거하면서 구현하려고 했으나 4, 5, 7, 9, 10, 11번 테케를 통과하지 못하였다 특히 str1 = "abc", str2 = "abbb" 인 경우를 해결하지 못하였다 위의 경우는 합집합이 { "ab, "bc"..