전체 글
-
더 맵게 C++프로그래머스(Programmers) 2021. 12. 23. 00:25
입출력 예 scoville K return [1, 2, 3, 9, 10, 12] 7 2 입출력 예 설명 스코빌 지수가 1인 음식과 2인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다. 새로운 음식의 스코빌 지수 = 1 + (2 * 2) = 5 가진 음식의 스코빌 지수 = [5, 3, 9, 10, 12] 스코빌 지수가 3인 음식과 5인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다. 새로운 음식의 스코빌 지수 = 3 + (5 * 2) = 13 가진 음식의 스코빌 지수 = [13, 9, 10, 12] 모든 음식의 스코빌 지수가 7 이상이 되었고 이때 섞은 횟수는 2회입니다. #include #include #include #include using namespace std; int solu..
-
멀쩡한 사각형 C++프로그래머스(Programmers) 2021. 12. 17. 00:19
제한사항 W, H : 1억 이하의 자연수 입출력 예 W H result 8 12 80 입출력 예 설명 입출력 예 #1 가로가 8, 세로가 12인 직사각형을 대각선 방향으로 자르면 총 16개 정사각형을 사용할 수 없게 됩니다. 원래 직사각형에서는 96개의 정사각형을 만들 수 있었으므로, 96 - 16 = 80 을 반환합니다. => 가려지는 사각형들은 그룹핑을 할 수 있습니다. => 가려지는 사각형들의 무리는 W와 H의 최대공약수의 갯수만큼 있습니다. => 작은사각형무리에서 지워지는 사각형의 갯수는 X+Y-1입니다. (X:W를 최대공약수로 나눈수 Y:H를 최대공약수로 나눈수) => 나머지는 아래의 풀이를 보면 됩니다. #include #include #include using namespace std; in..
-
순열과 조합의 차이유용한 정보 2021. 12. 16. 00:12
순열 순서가 있는 조합 (중복 허용X) => 순서가 있으므로, 중복을 허용하지 않습니다. ex) A B C 가 있을 때 이 세명을 세울 수 있는 방법의 개수를 구하시오. => (A B C) (A C B) (B A C) (B C A) (C A B) (C B A) => n * (n-1) * (n-2) ....*1 => nCp => 3* 2* 1 int main() { string example ="1234"; do{ cout 위와 같이 설정을 하고 문제를 풀었습니다. 입력받은 pair형 vector를 sort함수를 하여 정렬시킵니다... codingham.tistory.com => 백준에는 간단한 수열 문제가 있습니다. 보시는 블로그에서 수열 혹은 순열을 검색하여 해당 문제들 풀이를 확인할 수 있습니다.
-
내적 C++프로그래머스(Programmers) 2021. 12. 15. 22:51
제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 a b result [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 입출력 예 설명 입출력 예 #1 a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다. 입출력 예 #2 a와 b의 내적은 (-1)*1 + 0*0 + 1*(-1) = -2 입니다. #include #include using namespace std; int solution(vector a, vector b) { int answer = 0; for(int i=0; i 문제에 주어진대로 그대로 구현하면 됩니다. => 내적을 구하는 문제이므로 a,b의 s..
-
단체사진 찍기 C++프로그래머스(Programmers) 2021. 12. 15. 00:37
예제 입출력 n data answer 2 ["N~F=0", "R~T>2"] 3648 2 ["M~C1"] 0 예제에 대한 설명 첫 번째 예제는 문제에 설명된 바와 같이, 네오는 프로도와의 간격이 0이기를 원하고 라이언은 튜브와의 간격이 2보다 크기를 원하는 상황이다. 두 번째 예제는 무지가 콘과의 간격이 2보다 작기를 원하고, 반대로 콘은 무지와의 간격이 1보다 크기를 원하는 상황이다. 이는 동시에 만족할 수 없는 조건이므로 경우의 수는 0이다. #include #include #include #include using namespace std; // 전역 변수를 정의할 경우 함수 내에 초기화 코드를 꼭 작성해주세요. int solution(int n, vector data) { int answer = 0..
-
크레인 인형뽑기 게임프로그래머스(Programmers) 2021. 12. 14. 00:51
[제한사항] board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다. board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다. 0은 빈 칸을 나타냅니다. 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다. moves 배열의 크기는 1 이상 1,000 이하입니다. moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다. 입출력 예 board moves result [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 입출력 예에 대한 설명 입출력 예 #1 인형의 처음 상태는 문제에..
-
없는 숫자 더하기프로그래머스(Programmers) 2021. 12. 11. 23:27
제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 수 ≤ 9 numbers의 모든 수는 서로 다릅니다. 입출력 예 numbers result [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 입출력 예 설명 입출력 예 #1 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다. 입출력 예 #2 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다. #include #include using namespace std; int solution(vector numbers) { int answer = 45; for(int i=0; i 0~9까지 더한 숫자는 45입니다. => numbers 각 인덱스..
-
문자열 압축프로그래머스(Programmers) 2021. 12. 10. 22:23
제한사항 s의 길이는 1 이상 1,000 이하입니다. s는 알파벳 소문자로만 이루어져 있습니다. 입출력 예 s result "aabbaccc" 7 "ababcdcdababcdcd" 9 "abcabcdede" 8 "abcabcabcabcdededededede" 14 "xababcdcdababcdcd" 17 입출력 예에 대한 설명 입출력 예 #1 문자열을 1개 단위로 잘라 압축했을 때 가장 짧습니다. 입출력 예 #2 문자열을 8개 단위로 잘라 압축했을 때 가장 짧습니다. 입출력 예 #3 문자열을 3개 단위로 잘라 압축했을 때 가장 짧습니다. 입출력 예 #4 문자열을 2개 단위로 자르면 "abcabcabcabc6de" 가 됩니다. 문자열을 3개 단위로 자르면 "4abcdededededede" 가 됩니다. 문자..