전체 글 167

[Programmers] 120878번 - 유한소수 판별하기

Problem 문제 보기 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다. - 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다. 두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요. Solution function solution(a, b) { const x = (a, b) => { if(b===0) return a; return x(b, a % b); } b = b / x(a, b); while (b % 2 === 0) b = b / 2; ..

[Programmers] 120882번 - 등수 매기기

Problem 문제 보기 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. Solution function solution(score) { let x = score.map(x => (x[0] + x[1]) / 2); let copy = [...x].sort((a, b) => b - a) return x.map(x => copy.indexOf(x) + 1); } x에 평균값 넣어줌 copy에 x 얕은 복사 후 내림차순으로 정렬해준다 copy에 x의 값이 존재할경우 index + 1 r..

[Programmers] 120884번 - 치킨 쿠폰

Problem 문제 보기 프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요. Solution function solution(chicken) { const service = Math.floor(chicken / 10) const service2 = Math.floor(service / 10) return service + service2; } 처음에 위와 같이 코드 작성을 했는데 하지만 위의 코드는 치킨100마리 > 서비스 치킨 10마..

[Programmers] 120883번 - 로그인 성공?

Problem 문제 보기 머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요. - 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다. - 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다. Solution function solution(id_pw, db) { let idpw = [] for(let i = 0; i < db.length; i++){ if..

[Programmers] 120860번 - 직사각형 넓이 구하기

Problem 문제 보기 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요. Solution function solution(dots) { const x = Math.max(...dots.map(x => x[0])) - Math.min(...dots.map(x => x[0])) const y = Math.max(...dots.map(y => y[1])) - Math.min(...dots.map(y => y[1])) return x * y; } x = x중 큰 값 - x 중 작..

[Programmers] 120922번 - 종이 자르기

Problem 문제 보기 머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다. 정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요. Solution function solution(M, N) { return (M*N)-1; } 규칙을 알아내려고 직접 종이에 테스트 그리고 계산했는데 보니까 (M*N)-1 규칙이 있길래 이렇게 코드 적고 테스트를 돌렸더니 통과했다..그래서 어..?하고 최종 제출했는데 정답이라고 뜬다.. 너무 허무하고 믿을 수 없어서 다른 풀이도 봤는데 이렇게 푼 사람이 많았다..그것도 베스트풀이여..

[Programmers] 120861번 - 캐릭터의 좌표

Problem 문제 보기 머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요. - [0, 0]은 board의 정 중앙에 위치합니다. 예를 들어 board의 가로 크기가..

[Programmers] 120869번 - 외계어 사전

Problem 문제 보기 PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. Solution function solution(spell, dic) { for(let i = 0; i < dic.length; i++){ let count = 0; for(let j = 0; j < spell.length; j++){ if(dic[i].includes(spell[j])) count++; } if(count === spell.len..

[Programmers] 120868번 - 삼각형의 완성조건(2)

Problem 문제 보기 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요. Solution function solution(sides) { let answer = 0; let num = Math.max(...sides); for (let i = 0; i a+b); i++){ if (Math.min(...sides) + i > num) ++answer else if (i > num) ++answer } ..

[Programmers] 120840번 - 구슬을 나누는 경우의 수

Problem 문제 보기 머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. Solution function solution(balls, share) { function factorial(n) { result = 1 for (let i = 1; i num === 0 ? 1 : num * factorial(num - 1) function solution(balls, share) { return Math.round(factorial(bal..