알고리즘 문제풀이/프로그래머스
-
[프로그래머스/위클리 챌린지] 5주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 9. 7. 17:37
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr word의 길이가 최대 n이므로 DFS를 이용하여 모든 경우의 수를 구할 수 있다고 판단했다. 3주차는 너무 어렵다... #include #include #include using namespace std; string s = "AEIOU"; vector v; void DFS(int len, string no..
-
[프로그래머스/Level 2] 거리두기 확인하기 (C++)알고리즘 문제풀이/프로그래머스 2021. 8. 31. 16:28
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 카카오 기출 입력값의 크기가 최대 5로 고정 되어 있어서 BFS를 이용한 완전 탐색으로 문..
-
[프로그래머스/위클리 챌린지] 4주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 8. 30. 15:57
https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 문자열 파싱, 정렬을 이용한 구현 문제 3주차는 도전중... #include #include #include #include #include using namespace std; int cmp(const pair &a, const pair &b) { if(a.second == b.second) return a.first < b.first; return a.sec..
-
[프로그래머스/Level 4] 무지의 먹방 라이브알고리즘 문제풀이/프로그래머스 2021. 8. 21. 16:00
https://programmers.co.kr/learn/courses/30/lessons/42891 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr 카카오 기출 시간이 적게 걸리는 음식부터 확인하는 그리디 접근 방식으로 해결한다. (우선순위 큐를 이용) [3, 1, 2] 3개의 음식이 있고 k가 5초라고 가정해보자 1. 가장 적게 걸리는 음식인 2번 음식을 빼는데, 음식이 3개 남아 있으므로 3(남은 음식의 개수) x 1(2번 음식을 먹는 시간) = 3을 빼준다. 이는 2번 음식을 다 먹기 위해 3초가 걸린다는 의미다. 결국 전체 남은 시간은 5 - 3 = 2초가 된다. 2. 남은 음식중에 가장 적게 걸리는 음식은 3번 음식을 빼야하는데, 전체 음식이 2개 남아 있으므로 2(남은..
-
[프로그래머스/위클리 챌린지] 2주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 8. 12. 17:10
https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 현재 행을 기준으로 평균을 구하는 것이 아니라, 열을 기준으로 평균을 구하는 것을 주의(세로로 평균을 구해야 함) #include #include #include using namespace std; string answer = ""; void getGrade(int avg) { if(avg >= 90..
-
[프로그래머스/위클리 챌린지] 1주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 8. 12. 17:08
https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 금액이 부족하지 않으면 0을 리턴하도록 처리해주는 예외 케이스를 잘 읽지 못했음 예외 케이스 잘 확인할 것, 삼항 연산자 사용법에 대해 알게된 문제 #include using namespace std; long long solution(int price, int money, int count) { long long answer = 0; for(int ..
-
[프로그래머스/Level 2] 2개 이하로 다른 비트 (C++)알고리즘 문제풀이/프로그래머스 2021. 7. 27. 18:12
https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 짝수를 2진법, 비트로 표현했을 때, 가장 오른쪽 비트는 0이 된다. 따라서 +1을 해주면 오른쪽 비트만 1로 변하게 되기 때문에 비트가 총 1개 다르게 된다. 홀수를 비트로 표현하면 가장 오른쪽 비트는 1이 된다. 연속된 비트(1)의 개수가 n개일 때, n-1자리의 비트 수만큼 더하면 f(x) 값이 나오게 된다. #include #include using namespace std; vector solution(vector numbers) { vector answer; for(int i = 0; i < numbers.size();..
-
[프로그래머스/Level 1] 숫자 문자열과 영단어 (C++)알고리즘 문제풀이/프로그래머스 2021. 7. 26. 13:29
https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 카카오 기출 "onezerozero" -> 100로 변환해줘야 하는데, "zero"가 두번 나오기 때문에 while문을 사용해야 한다는 점을 주의 알게된 점 1. string의 find 함수를 사용해 특정 단어를 찾으면 그 단어가 시작되는 인덱스를 반환한다. 만약 못찾으면 string::npos를 반환한다. 2. replace(from, 사이즈(길이)..