프로그래머스 문제풀기 17

프로그래머스 19탄 (코딩 도장)

Ugly Numbers 심술쟁이 수는 2,3,5의 곱으로 만들 수 있는 수이다. 다음과 같은 순서의 수가 11개의 심술쟁이 수이다. 1,2,3,4,5,6,8,9,10,12,15,.... 처음 수는 1로 시작하도록 한다. 입력은 받지 않고, 에 1500번째 심술쟁이 수가 출력되게 한다. Sample Output The 1500'th ugly number is . 답 859963392 (1550번째는 1093500000, 십만번째는 290142196707511001929482240000000000000) function uglyNumber(n){ let ugly_number_list = [1] for(i = 0; i < n-1; i++){ let last = ugly_number_list.slice(-1) ..

프로그래머스 18탄 (코딩도장)

Happy Number == 문제 설명 == 양의 정수 S0 의 각 아라비아 숫자들의 제곱의 합으로 양의 정수 S1을 만든다고 하자. 동일한 방법이라면, S1으로 S2를 만들 수 있고, 이 후로도 계속 만들 수 있다. 만약 어떤 i(i ≥ 1)에 대해서 Si = 1이라면, 최초의 S0를 Happy Number라고 부른다. Happy Number가 아닌 수를 Unhappy Number라고 부른다. 예를 들어, 7에서 시작하게 되면 다음과 같은 일련의 순서를 가지게 되며 7, 49(=7^2), 97(=4^2+9^2), 130(=9^2+7^2), 10(=1^2+3^2), 1(=1^2), 따라서 7은 즐거운 수이다. 그리고 4는 4, 16(4^2), 37(1^2+6^2), 58(3^2+7^2), 89(5^2+8..

프로그래머스 17탄 (코딩도장)

비슷한 단어 찾아내기 아래와 같은 결과를 출력하는 function을 구현하라 bool OneEditApart(string s1, string s2) OneEditApart("cat", "dog") = false OneEditApart("cat", "cats") = true OneEditApart("cat", "cut") = true OneEditApart("cat", "cast") = true OneEditApart("cat", "at") = true OneEditApart("cat", "acts") = false 한개의 문자를 삽입, 제거, 변환을 했을때 s1, s2가 동일한지를 판별하는 OneEditApart 함수를 작성하시오. def checkRemoval(s1, s2): for i in range..

프로그래머스 17탄 (코딩도장)

120번째 죄수 감옥에 120명의 죄수가 있다. 간수는 복도를 120번 동안 다음 조건에 지나간다. 처음에 문은 모두 닫혀 있다. N번째 지나갈 때에는 N의 배수인 문들이 열려 있으면 닫고, 닫혀 있으면 연다. 마지막에 문이 열려 있으면 그 방의 죄수는 석방이다. 과연 몇 명의 죄수가 석방될까? let room = Array(120).fill(-1) for(let i = 1; i v == 1).length 1부터 120까지의 숫자로 채워진 room이라는 배열을 생성합니다. 배열의 초기 값은 모두 -1로 설정됩니다. 그런 다음, 중..

프로그래머스16탄 -(코딩도장)

1. 두 날짜(YYYYMMDD)의 차이 일수를 구하는 프로그램을 작성하시오. ※ 단, 프로그래밍 언어에서 지원하는 날짜차이를 계산하는 라이브러리는 사용하지 말것 예) 20070515 sub 20070501 = 14 20070501 sub 20070515 = 14 20070301 sub 20070515 = 75 풀이 function subdate(date){ 년 = parseInt(date.slice(0, 4)) 월 = parseInt(date.slice(4, 6)) 일 = parseInt(date.slice(6)) console.log(년, 월, 일) 월별일 = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 일수 = 년 * 365 + 일 for(let i=1..

프로그래머스 15탄 -(아마존 면접문제)

1. 사무실에는 특정일자의 출퇴근 시간이 기록된 거대한 로그파일이 있다고 한다. 파일의 형식은 다음과 같다. (한 라인에서 앞부분은 출근시간(HH:MM:SS), 뒷부분은 퇴근시간이다) 09:12:23 11:14:35 10:34:01 13:23:40 10:34:31 11:20:10 특정시간을 입력(예:11:05:20)으로 주었을 때 그 시간에 총 몇 명이 사무실에 있었는지 알려주는 함수를 작성하시오. 풀이 let t = '09:12:23' t = t.split(':').join('') let count = 0 let logs = `09:12:23 11:14:35 10:34:01 13:23:40 10:34:31 11:20:10` let log = logs.split('\n') for (let l of log..

프로그래머스 14탄-(코딩도장 아마존 면접문제)

1. 다음과 같은 형태의 배열을 [a1,a2,a3...,an,b1,b2...bn] 다음과 같은 형태로 바꾸시오 [a1,b1,a2,b2.....an,bn] 풀이 // swap을 하는 방법 const arr = [10, 20, 30, 40, 50, 60]; [arr[1], arr[2]] = [arr[2], arr[1]]; console.log(arr); // const l = ['a1','a2','a3','a4','a5','b1','b2','b3','b4','b5'] function solution(list) { var n = list.length / 2; for (let i = 1; i < n; i++) { for (let j = i * 2 - 1; j < n + i; j++) { [list[j], lis..

프로그래머스 12탄 (코딩 도장 문제 1,2)

1. 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.)예를들어 S={1, 3, 4, 8, 13, 17, 20} 이 주어졌다면, 결과값은 (3, 4)가 될 것이다. 풀이 s = [1, 3, 4, 8, 13, 17, 20] index = 0 minim = Infinity for (let i = 1; i < s.length; i++) { if (s[i] - s[i-1] < minim) { index = i minim = s[i] - s[i-1] } } console.log(s[index], s[index-1]) 주어진 배열 s에서 연속된 두 요소 간의 차이가 가장 작은 인덱스를 찾아 그 인덱스와 그 전 인덱스의 값..

프로그래머스 11탄

겹치는 선분의 길이 문제 설명 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다. line_2.png 선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다. 제한사항 lines의 길이 = 3 lines의 원소의 길이 = 2 모든 선분은 길이가 1 이상입니다. lines의 원소는 [a, b] 형태이며, a, b는 각각 ..

프로그래머스 10탄

한 번만 등장한 문자 문제 설명 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. 제한사항 0 응급순서.indexOf(v)+1) } function solution(emergency) { let sort = [...emergency].sort((a, b) => b - a); return emergency.map(k => { const queue = sort.findIndex(v => v === k); return queue + 1 }); } 영어가 싫어요 문제 설명 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다..