목록C,C++/코딩테스트 (102)
오답노트
https://programmers.co.kr/learn/courses/30/lessons/42889?language=cpp 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr - 문제파악 총 스테이지 수 N과 플레이어들이 현재 도전중인 스테이지를 넣은 배열이 주어진다. 실패율을 구해야하는 실패율은 현재 도전중인 플레이어의 수 / 클리어한 플레이어의 수이다. 이 때 실패율이 높은 순서대로 정렬한 배열을 출력하라. 실패율이 같을 경우 스테이지 순서가 빠른 순으로 출력하라. - 정답 멍청하게도 double을 계산할 ..
https://programmers.co.kr/learn/courses/30/lessons/77884?language=cpp 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr - 문제 파악 두 개의 정수가 주어지고 두 정수를 포함한 사이의 정수들의 약수의 개수가 짝수이면 정수를 더하고, 홀수이면 정수를 뺄 때, 두 정수를 포함한 사이의 정수들을 연산한 결과를 출력하라. - 정답 #include "bits/stdc++.h" using namespace std; ..
https://programmers.co.kr/learn/courses/30/lessons/68935# 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr - 문제 파악 정수 n을 3진법으로 표현한 뒤 3진법을 뒤집은 값을 10진수로 출력하라 - 정답 1. n을 넘지 않는 3의 제곱수를 구한다. 2. 1번에서 구한 3의 제곱수에서 n을 뺀다. 3. 만약 2번을 진행했음에도 3의 제곱수를 한번 더 뺄 수있다면 뺀다. 4. 3의 제곱수를 3으로 나누고 n을 갱신한다. 5..
https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr - 문제 파악 배열과 정수 한개가 주어진다. 배열을 잘 조합하여 정수보다 같거나 작은 수를 만들 수 있는데, 이 때 요소 개수의 최대값을 구하라. - 정답 #include "bits/stdc++.h" using namespace std; int solution(vector d, int budget) { int answer = 0; sort(d.begin(),d.en..
#include #include using namespace std; string solution(int a, int b) { string answer = ""; int day = 0; for(int i = 1; i < a ; i ++) { if(i day) { int ntmp = 1 + (n-1)*7; day = day - ntmp; switch(day) { case 0: answer = "FRI"; break; case 1: answer = "SAT"; break; case 2: answer = "SUN"; break; case 3: answer = "MON"; break; case 4: answer = "TUE"; break; case 5: answer = "WED"; break; case 6: a..
https://programmers.co.kr/learn/courses/30/lessons/86491?language=cpp 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr - 문제 파악 배열의 크기가 2이고 요소가 모두 정수인 배열A로 이루어진 배열B을 입력 받는다. 배열 A들로 각각 직사각형을 만들수 있는데, 배열B에 포함된 모든 배열 A를 포함하는 최소 직사각형의 넓이를 구하여라. (배열 A는 90도 회전이 가능하다) - 나의 접근 1. 가로 세로 크기와 돌렸을 때 가로 세로 크기를 확인하여 가장 최소로 만..
https://programmers.co.kr/learn/courses/30/lessons/12903?language=cpp 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr - 문제 파악 문자열이 주어지고 문자열이 홀수 일때는 가운데 글자를, 짝수일때는 두 글자를 출력해라 - 정답 #include #include using namespace std; string solution(string s) { string answer = ""; int size = s.size();..
https://programmers.co.kr/learn/courses/30/lessons/12906?language=cpp 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr - 문제 파악 주어지는 정수 배열에서 중복을 제거한 배열을 출력하라 - 정답 #include "bits/stdc++.h" using namespace std; vector solution(vector arr) { vector answer; int ntmp = arr[0]; answer.push_back(ntmp)..
https://programmers.co.kr/learn/courses/30/lessons/12910?language=cpp 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr - 문제파악 정수 배열과 나눗셈을 하기위한 정수가 주어지는데 배열의 요소들 중에서 나눗셈을 하기 위한 정수로 나누어지는 수를 오름차순으로 정렬한 배열을 출력하라, 만약 나누어지는 수가 없다면 -1을 요소로 가지는 배열을 출력하라 - 정답 #include "bits/stdc..
https://programmers.co.kr/learn/courses/30/lessons/12912 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr - 문제파악 주어지는 정수 두개 사이의 정수들의 합을 출력하라 - 정답 #include "bits/stdc++.h" using namespace std; long long solution(int a, int b) { long long answer = 0; long long llmin = min..