본문 바로가기
반응형

프로그래머스12

[프로그래머스 Level 2] 124 나라의 숫자 (C++) programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 구현 방법 이 문제를 보자마자 3진법과 비슷한 패턴이 떠올랐습니다. 해당 패턴 다음과 같은 순서로 진행됩니다. 기존 숫자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 패턴 1 2 3 11 12 13 21 22 23 31 32 33 111 112 113 121 122 123 하지만 124 나라의 숫자 문제에서는 다음과 같은 순서로 진행됩니다. 기존 숫자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 124 나라 1 2 4 11 12 14 21 22 24 41 42 44 111 11.. 2021. 2. 28.
[프로그래머스 Level 1] 신규 아이디 추천 (C++) programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 구현 방법 0단계: 공백 제거 C++ STL의 remove(), erase() 함수를 통해 문자열에 원하는 값을 제거할 수 있습니다. 문자열. erase(remove(문자열. begin(), 문자열. end(), 제거하고 싶은 것), 문자열. end()) 1단계: 소문자로 변환하기 문자열의 길이만큼 반복하며 소문자로 변환해주기 위해 tolower() 함수를 사용했습니다. .. 2021. 1. 31.
[프로그래머스 Level 1] 직사각형 별찍기 (C++ - 2가지) programmers.co.kr/learn/courses/30/lessons/12969 코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr 구현 방법 1 이 문제를 보면 대부분의 사람들은 2중 for문을 생각할 것입니다. 보통의 경우 다음과 같이 풀 것입니다. 높이만큼 반복하며, 내부에서 너비만큼 반복하여 별을 찍어줍니다. 소스코드 #include using namespace std; int main(void) { int a; int b; cin >> a >> b; for(int i=.. 2021. 1. 30.
[프로그래머스 Level 1] 다트 게임 (C++) programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 구현 방법 처음에 들었던 생각은, 주어진 문자열을 문자열 길이만큼 반복하면서, 숫자를 찾으면 그다음을 읽어와 S, D, T 중 판별하고, 그다음을 읽어와 *이나 #이 있는지 체크해서 점수를 추가해주는 방법을 생각했습니다. 하지만 이 방법은 10처럼 두 자리의 숫자가 오면 틀린 로직이었습니다. 이 문제의 가장 까다로운 상황은 2자리의 정수가 점수로 기록되었을 때인 것 같습니다. 새로 생각한 로직은, 문자열을 읽을 때, 숫자가 아닌 문자가 나올 때까지의 숫자를 하나의 temp변수에 담아줍니다. 예를 들어 "100S"라는 문자열이 오면 처음부터 탐색해 .. 2021. 1. 30.
[프로그래머스 Level 1] 비밀 지도 (C++) programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 구현 방법 먼저, 10진법으로 수가 주어지니 이진법으로 변환하는 방법을 생각해보았습니다. 예를 들어 9를 이진법으로 표현하면 01001(2)입니다. 이진법으로 표현하는 로직은 다음과 같습니다. 9를 2로 나누면 몫 = 4, 나머지 = 1 4를 2로 나누면 몫 = 2, 나머지 = 0 2를 2로 나누면 몫 = 1, 나머지 = 0 1을 2로 나누면 몫 = 0, 나머지 = 0.. 2021. 1. 30.
[프로그래머스 Level 1] 실패율 (C++) programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 구현 방법 먼저 입력 정보에 대해 고민해 봤습니다. N : 스테이지의 개수 stages : 사용자가 현재 도전 중인 스테이지 번호 즉 stages 가 [2,1,2,6,2,4,3,3]이면, 1번 유저는 2번 스테이지에서 플레이 중, 2번 유저는 1번 스테이지에서 플레이 중, 3번 유저는 2번 스테이지에서 플레이 중. stages의 숫자가 스테이지 개수인 N+1이면 해당 유저는 .. 2021. 1. 30.
[프로그래머스 Level 1] K 번째 수 (C++) programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 구현 방법 입력 배열은 array와 commands인데, commands가 [1,5,3]으로 주어지면 이는 array를 1번째 원소부터 5번째 원소들을 담고 정렬하여 그중 3번째 수를 뽑는 문제이다. 간단하게 commands의 개수 만큼 반복하고, 2번째 for문은 commands의 첫 번째 원소부터 두 번째 원소만큼 반복된다. 이때 array의 해당 index에 있는 값을 하나의 배열에 담아주고, 해당 배열을 정렬하고 commands의 마지.. 2021. 1. 24.
[프로그래머스 Level 1] 모의고사 (C++) programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 구현 방법 일단 세 사람의 찍는 방식 패턴을 파악해보았다. 1번 사람은 1,2,3,4,5를 반복하고, 2번 사람은 2,1,2,3,2,4,2,5를 반복하고, 3번 사람은 3,3,1,1,2,2,4,4,5,5를 반복한다. 주어진 답안만큼 반복문을 돌아, 각자의 찍는 패턴을 비교해 맞으면 총점수에 1점씩 더해서 총점수를 저장해두었다. 3 사람의 점수를 담고 정렬하여 최고점을 설정하였.. 2021. 1. 24.
[프로그래머스 Level 1] 완주하지 못한 선수 (C++) programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 구현 방법 처음에 생각했던 로직은, 주어진 두 배열을 비교하기 위해 set_difference 함수를 사용하는 것이였다. 해당 함수를 사용해본적 없고 정확한 사용법을 몰라서 다른 방법을 선택하기로 했다. 선택한 방법은, 두 배열을 정렬하고, 첫번째 원소부터 비교해나가다가 두 원소가 달라지는 지점이 완주를 못한 사람일 것이다. 해당 로직을 구현한 소스코드는 .. 2021. 1. 24.
[프로그래머스 Level 1] 두개 뽑아서 더하기 (C++) programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 구현 방법 해당 문제는, 주어진 numbers배열에 있는 숫자들 중 두 개를 뽑아 더해서 구할 수 있는 모든 경우의 수를 구하는 문제입니다. 문제를 보자마자 생각난 로직은 다음과 같습니다. 예를 들어 5개의 숫자가 주어졌을 때, 1번째 원소와, 2번째, 3번째, 4번째, 5번째를 더한 숫자를 저장, 2번째 원소와, 3번째, 4번.. 2021. 1. 24.
반응형