본문 바로가기

cpp450

[프로그래머스] 이진 변환 반복하기 (C++) 이진 변환 반복하기 / Lv.2 문제 설명 ) 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 ) s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소.. 2023. 3. 20.
[프로그래머스] 다음 큰 숫자 (C++) 다음 큰 숫자 / Lv.2 문제 설명 ) 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 ) n은 1,000,000 이하의 자연수 입니다. 입출력 예 ) 입출력 예 설명 ) 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 다음 큰 .. 2023. 3. 20.
[프로그래머스] 피보나치 수 (C++) 피보나치 수 / Lv.2 문제 설명 ) 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 ) n은 2 이상 100,000 이하인 자연수입니다. 입출력 예 ) 입출력 예 설명 ) 피보나치수는 0번째부터 0, 1, 1, 2.. 2023. 3. 19.
[프로그래머스] 숫자의 표현 (C++) 숫자의 표현 / Lv.2 문제 설명 ) Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 제한 사항 ) n은 10,000 이하의 자연수 입니다. 입출력 예 ) 입출력 예 설명 ) 입출력 예#1 문제의 예시와 같습니다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.. 2023. 3. 19.