코딩테스트/프로그래머스
-
[문제] 코딩테스트 연습 - 이중우선순위큐 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] "D 1"이 들어오면 최댓값을 삭제하고 "D -1"이 들어오면 최솟값을 삭제하면서 마지막에 남은 자료의 최댓값과 최솟값을 반환하는 문제이다. 최댓값의 우선순위큐와 최솟값의 우선순위큐를 만들어주고 명령어대로 "D 1"일때는 최댓값의 우선순위큐를 "D -1"일때는 최솟값의 우선순위큐를 삭제해주자. 또한 우선순위큐의 크기가 0이 아닐때 빼라고 한 명령어가 넣으라고 한 명령어보다 많아진 경우 내림차순, ..
[C++] 이중우선순위큐[문제] 코딩테스트 연습 - 이중우선순위큐 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] "D 1"이 들어오면 최댓값을 삭제하고 "D -1"이 들어오면 최솟값을 삭제하면서 마지막에 남은 자료의 최댓값과 최솟값을 반환하는 문제이다. 최댓값의 우선순위큐와 최솟값의 우선순위큐를 만들어주고 명령어대로 "D 1"일때는 최댓값의 우선순위큐를 "D -1"일때는 최솟값의 우선순위큐를 삭제해주자. 또한 우선순위큐의 크기가 0이 아닐때 빼라고 한 명령어가 넣으라고 한 명령어보다 많아진 경우 내림차순, ..
2023.08.23 -
[문제] 코딩테스트 연습 - 최고의 집합 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 합해서 s가 되는 집합 answer의 size가 n일때 answer안에 있는 값들이 무엇인지 알아봐라. 라는 문제이다. n은 1부터 10,000이 범위이고 s는 1이상 1억 이하가 범위이다. 즉, 완전탐색으로 해당 문제를 풀면 시간초과가 날 수밖에 없다. 그러니 문제를 다시 한번 보면 어떠한 풀이법이 있을 것이라는 것을 유추할 수가 있다. 우선 s가 12이고 n이 3일때와 s가 12이고 n이 4일때..
[C++] 최고의 집합[문제] 코딩테스트 연습 - 최고의 집합 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 합해서 s가 되는 집합 answer의 size가 n일때 answer안에 있는 값들이 무엇인지 알아봐라. 라는 문제이다. n은 1부터 10,000이 범위이고 s는 1이상 1억 이하가 범위이다. 즉, 완전탐색으로 해당 문제를 풀면 시간초과가 날 수밖에 없다. 그러니 문제를 다시 한번 보면 어떠한 풀이법이 있을 것이라는 것을 유추할 수가 있다. 우선 s가 12이고 n이 3일때와 s가 12이고 n이 4일때..
2023.08.23 -
[문제] 코딩테스트 연습 - 상담원 인원 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 백트래킹 + 우선순위큐를 이용해서 풀 수 있는 문제였다. 우선 백트래킹을 이용해서 내가 정해줄 수 있는 멘토의 수를 모두 정한다. k가 3이고 n이 5라면 (1,1,3), (1,2,2), (1,3,1), (2,1,2), (2,2,1), (3,1,1)의 6가지가 나오면 된다. 여기서 중요한것은 완전 탐색이 아닌 백트래킹이라는 점이다. 문제에서 보면 모든 멘토는 1부터 시작이고 멘토들을 모두 합친 값은..
[Swift] 상담원 인원[문제] 코딩테스트 연습 - 상담원 인원 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 백트래킹 + 우선순위큐를 이용해서 풀 수 있는 문제였다. 우선 백트래킹을 이용해서 내가 정해줄 수 있는 멘토의 수를 모두 정한다. k가 3이고 n이 5라면 (1,1,3), (1,2,2), (1,3,1), (2,1,2), (2,2,1), (3,1,1)의 6가지가 나오면 된다. 여기서 중요한것은 완전 탐색이 아닌 백트래킹이라는 점이다. 문제에서 보면 모든 멘토는 1부터 시작이고 멘토들을 모두 합친 값은..
2023.08.20 -
[문제] 코딩테스트 연습 - 상담원 인원 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 백트래킹 + 우선순위큐를 이용해서 풀 수 있는 문제였다. 우선 백트래킹을 이용해서 내가 정해줄 수 있는 멘토의 수를 모두 정한다. k가 3이고 n이 5라면 (1,1,3), (1,2,2), (1,3,1), (2,1,2), (2,2,1), (3,1,1)의 6가지가 나오면 된다. 여기서 중요한것은 완전 탐색이 아닌 백트래킹이라는 점이다. 문제에서 보면 모든 멘토는 1부터 시작이고 멘토들을 모두 합친 값은..
[C++] 상담원 인원[문제] 코딩테스트 연습 - 상담원 인원 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 백트래킹 + 우선순위큐를 이용해서 풀 수 있는 문제였다. 우선 백트래킹을 이용해서 내가 정해줄 수 있는 멘토의 수를 모두 정한다. k가 3이고 n이 5라면 (1,1,3), (1,2,2), (1,3,1), (2,1,2), (2,2,1), (3,1,1)의 6가지가 나오면 된다. 여기서 중요한것은 완전 탐색이 아닌 백트래킹이라는 점이다. 문제에서 보면 모든 멘토는 1부터 시작이고 멘토들을 모두 합친 값은..
2023.08.19 -
[문제] 코딩테스트 연습 - 키패드 누르기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] BFS를 이용해서 문제를 풀었다. 숫자 키패드가 4 X 3으로 이루어진 그래프라고 가정하면 처음 왼쪽 손가락은 {3,0} 위치에 오른쪽 손가락은 {3,2} 위치에 있고 1,3,6을 움직이면 각각 왼쪽 손가락을 {0,0}, {1,0}, {2,0} 으로 가게 되고 3,6,9의 경우에는 오른쪽 손가락을 {0,2}, {1,2}, {2,2} 로 가게 만들었다. 문제의 핵심은 2,5,6,8에서는 현재 위치해..
[C++] 키패드 누르기[문제] 코딩테스트 연습 - 키패드 누르기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] BFS를 이용해서 문제를 풀었다. 숫자 키패드가 4 X 3으로 이루어진 그래프라고 가정하면 처음 왼쪽 손가락은 {3,0} 위치에 오른쪽 손가락은 {3,2} 위치에 있고 1,3,6을 움직이면 각각 왼쪽 손가락을 {0,0}, {1,0}, {2,0} 으로 가게 되고 3,6,9의 경우에는 오른쪽 손가락을 {0,2}, {1,2}, {2,2} 로 가게 만들었다. 문제의 핵심은 2,5,6,8에서는 현재 위치해..
2023.08.16 -
[문제] 코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 구현 문제로 문제에서 주어진 단계를 차근차근 밟으면 어렵지 않게 풀린다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음..
[Swift] 신규 아이디 추천[문제] 코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 구현 문제로 문제에서 주어진 단계를 차근차근 밟으면 어렵지 않게 풀린다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음..
2023.08.15