본문 바로가기

<알고리즘 문제풀이&연습>/[C++] 프로그래머스15

[프로그래머스] LEVEL 1 : 핸드폰 번호 가리기 (C++) 안녕하세요!! BlockDMask 입니다.어제는 오랜만에 쇼핑을 했습니다 ㅎ_ㅎ 이쁜 셔츠를 샀어요. 1. 제목프로그래머스 LEVEL 1 : 핸드폰 번호 가리기 (C++) 2. 문제 설명프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해 주세요. 제한조건s는 길이 4이상 20이하인 문자열 입니다. phone_number : return01012345678 : *******5678023332222 : *****2222이런식으로 input과 return을 하는 함수를 만들면 됩니다. 3. 풀이 과.. 2018. 9. 18.
[프로그래머스] LEVEL 1 : 자릿수 더하기 (C++) 안녕하세요. BlockDMask 입니다. 이제 날씨도 선선한게, 노트북 딱 들고 공원 벤치에 앉아서 코딩하기 딱 좋은 날씨 인거 같아요 그쵸? 0. 제목프로그래머스(programmers) LEVEL 1 자릿수 더하기 입니다. 1. 문제 설명자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어주세요.예를들어 N = 2345 이면 2+3+4+5 = 14 를 return 하면 됩니다. 2. 풀이 과정문제를 잘 읽어 보면 2345를 하나씩 분리해서 더하면 됩니다.매개변수로 들어오는 2345를 일의자리를 계속 분리하고 일의자리를 없애는 방식으로 진행하면됩니다.일의 자리를 구하는 것은 10으로 나눈 나머지를 구하면 해결됩니다.일의 자리를 없애는 것은 10으로 나눈 몫.. 2018. 9. 17.
[프로그래머스] LEVEL 1 : 자연수 뒤집어 배열로 만들기 (C++) 안녕하세요. BlockDMask 입니다. 아니 오늘은 아디다스 츄리닝 바지를 입고 나갔는데도 바지에 땀이;; 차는거에요.. 그것도 저녁 8시에 너무 황당한 날씨였습니다. 0. 제목프로그래머스(programmers) LEVEL 1 자연수 뒤집어 배열로 만들기 입니다. 1. 문제 설명자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.예를 들어 n이 23456이면 [6,5,4,3,2]의 배열을 리턴 합니다.제한조건 - n 은 10,000,000,000이하인 자연수 입니다. 2. 풀이 과정문제를 잘 읽어보면 그냥 뒤에서 부터(1의 자리수) 하나씩 배열에 집어 넣어라 입니다.1000이라는 자연수가 들어오면 [0,0,0,1] 배열에 넣어서 반환 해주면됩니다.이번에 이용할 연산자는 %(나머지.. 2018. 8. 17.
[프로그래머스] LEVEL 1 : 문자열 다루기 기본(C++) 안녕하세요. BlockDMask 입니다.날이 너무 덥네요.. 에어컨이 없으면 일상생활이 불가능할 정도에요.그래도 힘내서 오늘도 문제를 풀어봅시다. 0. 제목프로그래머스 LEVEL 1 '문자열 다루기 기본' 입니다. 1. 문제 설명문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성되어있는지 확인해 주는 함수, solution을 완성하세요.예를 들어 s가 "a234" 이면 false를 리턴하고 "1234이면 true를 리턴하면 됩니다.제한사항 s는길이가 1이상, 8이하인 문자열 입니다. 2. 풀이 과정문제를 보면 우리가 쳐내야 할것이 두개가 있지요.첫번째 조건은 문자열의 길이가 4 또는 6이다.두번째 조건은 모두가 숫자 이어야한다. 입니다. 첫번째 조건은 string 클래스의 래퍼런스들 length() 또는.. 2018. 8. 15.
[프로그래머스] LEVEL 1 : 나누어 떨어지는 숫자 배열(C++) 안녕하세요. BlockDMask 입니다.하나씩 하나씩 레벨 1부터 풀어보겠습니다천천히 부담없이 풀고있습니다. 문제 풀어보겠습니다.0. 제목프로그래머스 LEVEL 1'나누어 떨어지는 숫자 배열' 입니다.1. 문제 설명array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 구현. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하면 됩니다.제한사항 arr은 자연수를 담은 배열이고 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다.예시. arr -> divisor -> return [5, 9, 6, 20.. 2018. 8. 5.
[프로그래머스] LEVEL 1 : 가운데 글자 가져오기(C++) 안녕하세요! BlockDMask 입니다.프로그래머스 알고리즘 문제 LEVEL 1 난이도"가운데 글자 가져오기"를 풀어보았습니다.사용언어 : C++0. 제목프로그래머스 알고리즘 : 가운데 글자 가져오기1. 문제 설명단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.단어의 길이가 짝수라면 가운데 두 글자를 반환하면 됩니다.제한사항 : s는 길이가 1이상, 100이하인 스트링입니다.입출력 예시. 입력 -> 출력 "abcde" -> "c" "qwer" -> "we"2. 풀이 과정이 문제를 보고 간단하게만 생각하면. 문자열 s 를 받고 그것의 길이(length), 크기(size)가 홀수인지 짝수인지 구분해서 반환하는 문자열로 만들어 주면 됩니다.그러면 우리는 std::string 클래스를 .. 2018. 8. 4.
[Level 2] 콜라즈 추측 안녕하세요. BlockDMask 입니다.오랜만에.. (새 환경에 적응하느라..) 블로그를 하네요.다시 꾸준히 시작해보겠습니다. 프로그래머스 알고리즘 문제 입니다. 171110 문제 빼먹음 -> 171226 완료0. 제목프로그래머스 Level 2 콜라즈 추측Programmers Level 2 CollatzC++ 알고리즘 문제1. 문제 설명1937년 Collatz란 사람에 의해 제기된 이 추측은, 입력된 수가 짝수 라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한 다음, 결과로 나온 수에 같은 작업을 1이 될 때까지 반복할 경우 모든 수가 1이 된다는 추측입니다.예를 들어, 입력된 수가 6 이라면 6 -> 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1 이 되어 총 8번 만에 1이 됩.. 2017. 12. 26.
[Level 1] 피보나치 수 (반복문) 안녕하세요 BlockDMask 입니다.프로그래머스 알고리즘 문제 C++ 로 풀었습니다. 171109 문제 빼먹음 -> 171215 완료0. 제목프로그래머스 Level 1 피보나치 수Programmers Level 1 Fibonacciprogrammers C++ fibonacci1. 문제 설명피보나치 수는 F(0) = 0, F(1) = 1 일때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식 입니다.2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환하면 됩니다.F(3) = 2 F(15) = 610 을 출력하면 됩니다.2. 풀이 과정제가 아는 피보나치 수를 구하는 방법은 recursive 를 이용한 방법과 반복문을 이용하는 방법 .. 2017. 12. 15.
[Level 1] 최대공약수와 최소공배수 안녕하세요. BlockDMask 입니다.프로그래머스 알고리즘 문제 C++ 언어로 풀어보겠습니다. 171108 문제 빼먹음 -> 171214 완료0. 제목프로그래머스 Level 1 최대공약수와 최소공배수Programmers Level1 GCD & LCMC++ gcd, lcm1. 문제 설명두 수를 입력받아 두 수의 최대공약수(gcd)와 최소공배수(lcm)를 반환해주는 gcdlcm 함수를 완성해 보세요.배열의 맨 앞에 최대공약수, 그 다음 최소 공배수를 넣어 반환하면 됩니다.예를 들어 gcdlem(12, 54)가 입력되면, [6, 108]를 반환하면 됩니다.2. 풀이 과정swap 함수를 통해서 항상 파라미터로 받은 a가 큰수가 되도록 하였습니다.최대공약수(gcd)는 유클리드 알고리즘을 통해서 구하였습니다. 유.. 2017. 12. 14.
[Level 1] 행렬의 덧셈 안녕하세요 BlockDMask 입니다.프로그래머스 알고리즘 문제 풀어보겠습니다. 171107 문제 빼먹음 -> 171213 완료0. 제목프로그래머스 Level 1 행렬의 덧셈Programmers Level 1 Sum of matrixC++ vector container1. 문제 설명행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환하면 됩니다. 예를 들어 2x2 행렬인 A = ((1, 2), (2, 3)), B = ((3, 4), (5, 6)) 이 주어지면같은 2x2 행렬인 ((4, 6), (7, 9))를 반환하면 됩니다.(어떠한 행렬에도 대응하는 함수를 완성해 주세요.)2... 2017. 12. 13.