C++
-
멀쩡한 사각형 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. 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" 가 됩니다. 문자..
-
오픈채팅방프로그래머스(Programmers) 2021. 12. 9. 20:42
제한사항 record는 다음과 같은 문자열이 담긴 배열이며, 길이는 1 이상 100,000 이하이다. 다음은 record에 담긴 문자열에 대한 설명이다. 모든 유저는 [유저 아이디]로 구분한다. [유저 아이디] 사용자가 [닉네임]으로 채팅방에 입장 - "Enter [유저 아이디] [닉네임]" (ex. "Enter uid1234 Muzi") [유저 아이디] 사용자가 채팅방에서 퇴장 - "Leave [유저 아이디]" (ex. "Leave uid1234") [유저 아이디] 사용자가 닉네임을 [닉네임]으로 변경 - "Change [유저 아이디] [닉네임]" (ex. "Change uid1234 Muzi") 첫 단어는 Enter, Leave, Change 중 하나이다. 각 단어는 공백으로 구분되어 있으며, 알파벳..
-
숫자 문자열과 영단어프로그래머스(Programmers) 2021. 12. 6. 20:52
제한사항 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다. 입출력 예 sresult "one4seveneight" 1478 "23four5six7" 234567 "2three45sixseven" 234567 "123" 123 입출력 예 설명 입출력 예 #1 문제 예시와 같습니다. 입출력 예 #2 문제 예시와 같습니다. 입출력 예 #3 "three"는 3, "six"는 6, "seven"은 7에 대응되기 때문에 정답은 입출력 예 #2와 같은 234567이 됩니다. 입출력 예 #2와 #3과 같이 같은 정답을 가리키는 문자열이 여러 가지가 나올 수 있습니다. 입..