항해99 문제40번풀이 (신규 아이디 추천,프로그래머스, 카카오 blind Recruitment ) https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 접근법 추후업데이트 코드 해석 추후업데이트 다른사람이 푼것 더보기 공부/알고리즘&자료구조 2021.11.12
항해99 문제37번풀이 (소수 만들기 , 프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr +6점 내가 푼식: 접근 완전 탐색, Brute Force 코드 풀이 공부/알고리즘&자료구조 2021.11.12
항해99 문제31번풀이 (같은 숫자는 싫어,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 접근법 처음에 중복제거 메서드가 있는지 찾아보았고, filter, indexof,includes 등등 여러 방법이 있었다. 그중 filter 를 쓰기로 결정하였고, 인덱스마다 같은지 체크하여 같지 않은 값들만 새로운 배열에 추가하여 만들기로 함. filter기능과 파라미터로 받는 callback function, value, index.. 공부/알고리즘&자료구조 2021.11.11
항해99 문제30번풀이 (최소직사각형,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 내가푼 방식: 접근법 가로 세로중 가장 큰 수를 일단 찾고 그 max 값을 기준으로 잡고 max값을 가진 명함의 나머지 길이를 다른 명함들의 가로,세로 와 비교를 한다, 이때 각각의 명함들의 최소값인 것을 max명함의 나머지길이와 비교하여 다른 명함의 최소값이 크다면 그 길이만 max값을 가진 명함의 다른 길이에 교체한다. 왜 각각의 명함의 최소값과 max값을 가진.. 공부/알고리즘&자료구조 2021.11.11
항해99 문제28번풀이 (하샤드 수,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 내가푼 방법: 접근 두자리수의 각각 숫자를 더한값에 원래 값을 나눴을때 나머지가 있는지 없는지에 따라 true, false를 반환하는것을 생각 정수로 받기때문에, 각 숫자를 나누기위해서 string으로 만들어주고, 자릿수마다 들어간 값을 하나하나 더한것을 기존 숫자와 나눈것에서 반환값을 만듬, 제한을 체크 1이상 10000이하 풀이 2.. 공부/알고리즘&자료구조 2021.11.11
항해99 문제27번풀이 (콜라츠 추측,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 내가 푼 방법: +6점 맞음 접근 이미 문제에서 콜라츠의 법칙을 설명해주었기때문에 그대로 실행하면 된다고 생각했다 if문을 통해 % 이용 짝수 홀수 나누고, 짝수면 /2 하고 count++, 홀수면 *3 +1 하고 count++ 그리고 만족하는 값이 나올때까지 while(1) 로 무한 반복하기로 정함 풀이 2줄. 몇번을 실행했는지 .. 공부/알고리즘&자료구조 2021.11.11
항해99 문제33번풀이 (로또의 최고 순위와 최저 순위,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr +6점 얻음. 내가 푼 방법: 접근법 미리 알고리즘과 원하는 기능이나 예외등을 구상하기로함 1. 각각 입력받은 lottos 의 배열과 win_nums 배열중 일치하는 개 몇개 인지 체크 (includes 사용) 2. 비교후 나온 일치갯수가 최소 0에서 최대 6개 인것을 일치할때마다 cnt++ 카운트해주었다. 없으면.. 공부/알고리즘&자료구조 2021.11.11
항해99 문제26번풀이 (제일 작은수 제거하기,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr 참고하고 푼것: 접근법 숫자가 들어있는 배열이 들어갔을때 최소값을 찾는것과 어떻게하면 그 최소값을 배열에서 뺄수있을까 먼저 생각하였다. 이때 그전까지 써보지 않았던 reduce 메서드를 사용하여 입력한 배열의 인덱스 값들을 차례대로 검사하며 min 이라는 곳에 조건에 따른 값을 넣을려고 했다. 이떄 최소값을 넣어야.. 공부/알고리즘&자료구조 2021.11.10
항해99 문제24번풀이 (정수 내림차순으로 배치하기,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 내가 푼식: 접근법 문제를 봤을때 메서드를 활용하면 되겠다 생각했다. 숫자를 문자열로 바꾸는 방법이 많은데 이땐 메서드 보단 순수 자바스크립트 동적 타입 특성을 이용하기로했고, 그다음부턴 split,sort,join 을 사용한후 string 상태를 toString 이 아닌 + 를 이용하여 숫자 타입으로 바꾸기로 생.. 공부/알고리즘&자료구조 2021.11.10
항해99 문제22번풀이 (자릿수 더하기,프로그래머스) https://programmers.co.kr/learn/courses/30/lessons/12931 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr 내가 푼방식: 접근 입력한 숫자의 각 자리수마다 더해야 하기때문에 split 을 이용하여 분리해야겠다고 생각이 들었고 분리 하기위해서는 number 형에서 string 타입으로 바꿔줘야하기때문에 toString을 쓰기로 생각했다. split을 사용하여 나눌때는 ''으로 한개의 문자열로 쪼.. 공부/알고리즘&자료구조 2021.11.10