프로그래머스
-
스택/큐 > 탑프로그래머스(Programmers) 2018. 9. 26. 21:22
https://programmers.co.kr/learn/courses/30/lessons/42588 1. 문제 2. 알고리즘키워드 - 큐 3. 코드 12345678910111213141516171819202122232425262728293031323334353637#include #include #include #include using namespace std; vector solution(vector heights) { vector answer; queue qq1; reverse(heights.begin(), heights.end()); int size = heights.size(); for (int i = 0; i
-
정렬 > 가장 큰 수프로그래머스(Programmers) 2018. 9. 20. 17:27
https://programmers.co.kr/learn/courses/30/lessons/42746 1. 문제 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. - 제한 사항numbers의 길이는 1 이상 100,000 이하입니다.numbers의 원소는 0 이상 1,000 이하입니다.정답이 너무 클 ..
-
정렬 > K번째수프로그래머스(Programmers) 2018. 9. 20. 16:58
https://programmers.co.kr/learn/courses/30/lessons/42748 1. 문제 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.2에서 나온 배열의 3번째 숫자는 5입니다.배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 ..
-
2017 팁스타운 > 예상 대진표프로그래머스(Programmers) 2018. 9. 20. 15:56
https://programmers.co.kr/learn/courses/30/lessons/12985 1. 문제 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을..
-
Level 2 > 다음 큰 숫자프로그래머스(Programmers) 2018. 9. 14. 19:17
https://programmers.co.kr/learn/courses/30/lessons/12911 1. 문제입력 받은 숫자를 이진수로 변환하여 갖고 있는 1의 개수와 다음 숫자를 이 진수로 변환 했을 때 1의 개수가 같은 숫자를 찾는 문제 현재 숫자 - 78(1001110) == 1 의 개수 4 개다음 큰 숫자 - 83(1010011) == 1 의 개수 4개 2. 알고리즘키워드 - 구현 3. 코드 123456789101112131415161718192021#include #include using namespace std; int solution(int n) { int count = __builtin_popcount(n); // 현재 정수의 비트 카운트를 계산 한다. while(true) { // 반..
-
해시 > 완주하지 못한 선수프로그래머스(Programmers) 2018. 9. 14. 13:13
https://programmers.co.kr/learn/courses/30/lessons/42576 1. 문제중복된 원소가 없는지 판단 하는 문제 2. 알고리즘키워드 - 해쉬, 정렬 3. 코드 1234567891011121314151617181920212223242526272829303132333435#include #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; map mm; int size = participant.size(); for(int i=0; ifirst; break; } } return answer;}Colored ..
-
Level 3 > 멀리 뛰기프로그래머스(Programmers) 2018. 8. 22. 13:57
https://programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 | 프로그래머스 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solut programmers.co.kr 알고리즘 키워드 - 피보나치, 다이나믹프로그래밍 코드 #include #..
-
Level 3 > 가장 긴 팰린드롬프로그래머스(Programmers) 2018. 8. 22. 13:22
https://programmers.co.kr/learn/courses/30/lessons/12904?language=cpp 1. 문제주어진 문자열에서 가장 긴 펠린드롬 문자열을 찾는 문제 2. 알고리즘키워드 - 문자열, 브루트포스 3. 코드 123456789101112131415161718192021222324252627#include #include #include using namespace std;int solution(string s){ int answer = 0; int length = s.length(); for(int i=0;ianswer; subLength--) { int left = i; int right = left+subLength - 1; while(left= right && an..