반응형

IT/Algorithm 50

프로그래머스) 모의고사

https://programmers.co.kr/learn/courses/30/lessons/42840# 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 풀이 a부터 c까지 각각 1번부터 3번 학생의 찍기 패턴을 정의하였고, 그리고 모두 같은 점수를 받을 경우를 고려하여 1~3의 key를 초기값 0으로 정의하여 loser 오브젝트를 정의했다. 문제는 최대 10,000개일 수 있으므로 answers의 길이만큼 반복한다. 1~3번 학생들은 각자의 패턴이 다르므로 각각 j, k, l로 반복된다. 각각의 패턴에 정답을..

IT/Algorithm 2021.07.01

프로그래머스) 문자열 다루기 기본

https://programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 programmers.co.kr 풀이 먼저 문자열의 길이를 조건식으로 걸러내고, 조건에 부합하였을 때 오른쪽 조건식으로 넘어온다. 숫자 이외의 문자가 있는 경우를 search 메소드를 사용하여 확인하고 없는 경우(-1) true를 반환하고, 두 개의 큰 괄호로 묶여있는 조건식에 하나라도 부합하지 않는 경우 false를 반환한다. var s..

IT/Algorithm 2021.07.01

프로그래머스) 신규 아이디 추천

https://programmers.co.kr/learn/courses/30/lessons/72410?language=javascript 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 풀이 문자열에서 조건에 부합하지 않는 문자가 있는지 확인하기 위해 리터럴 방식의 정규 표현식과 match 메소드를 활용하였다. 배열로 변환할 때에는 split("")으로 문자 하나씩 나누었다. ' . '의 위치와 2개 이상 붙어있는 경우는 for문에 splice 메소드를 활용하였다. 나머지 2개 이하, 16개 이상인 문..

IT/Algorithm 2021.06.30

프로그래머스) 폰켓몬

문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..

IT/Algorithm 2021.06.25

프로그래머스) 하샤드 수

문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 10 true 12 true 11 false 13 false arr return 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합..

IT/Algorithm 2021.06.22

프로그래머스) 문자열 내 p와 y의 개수

https://programmers.co.kr/learn/courses/30/lessons/12916 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자..

IT/Algorithm 2021.06.18

프로그래머스) 같은 숫자는 싫어

https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1..

IT/Algorithm 2021.06.18

프로그래머스) K번째 수

https://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의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k..

IT/Algorithm 2021.06.17

프로그래머스) 완주하지 못한 선수

https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요..

IT/Algorithm 2021.06.17

코딩테스트 연습 > 2019 카카오 개발자 겨울 인턴십 > 크레인 인형뽑기 게임

풀어보았다! function solution(board, moves) { const box = []; const trash = []; for(let i = 0 ; i < moves.length ; i++){ for(let j = 0 ; j < board.length ; j++){ var rowS = board[j][moves[i]-1];//변하는 값이므로 var로 지정 if(rowS !== 0){ box.push(rowS);//인형 넣는 곳 board[j][moves[i]-1] = 0;//인형이 있었던 곳 빈 자리 만들기 break;//inner 반복문 종료 } } } for(let k = 0 ; k < box.length ; k++){ if(box[k] === box[k-1]){ trash.push(b..

IT/Algorithm 2021.05.29
반응형