본문 바로가기
반응형

프로그래머스 1레벨7

[프로그래머스 Level 1] 키패드 누르기 (C++) programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 구현 방법 이 문제를 처음 봤을 때, 특정 알고리즘/ 자료구조를 사용할 필요 없이 구현력을 요구하는 문제 같아 보였습니다. 이 문제를 해결할 로직은 다음과 같습니다 입력받은 숫자 배열을 처음부터 하나씩 탐색 숫자가 1, 4, 7 이면 왼손으로 누르고 왼손 위치를 해당.. 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] 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/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[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 programmers.co.kr 구현 방법 처음에 문제를 보자마자, 2차원 벡터를 사용하고, 위에 있는 것부터 뽑아야 하므로 스택을 사용해야 할 줄 알고 헤매고 있었습니다. 몇 분간 고민하고, 문제를 너무 어렵게 생각하는 거 같아 단순하게 생각했습니다. 2차원 배열을 스택으로 넣어주는게 아닌 단순하게 좌표로 생각했습니다. 2중 for문으로 2차원 배열의 모든 원소를 moves 배열의 순서대로 검사하며, 인형을 뽑아 결과 배열에 넣어주.. 2021. 1. 24.
반응형