반응형

프로그래머스 39

프로그래머스) 복서 정렬하기

https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 나의 풀이 function solution(weights, head2head) { const objList = []; const answer = []; head2head.forEach(function (strScore, strIndex) { let winMoreWeight = 0; let obj = {}; strSc..

IT/Algorithm 2021.10.13

프로그래머스) [1차] 다트 게임

https://programmers.co.kr/learn/courses/30/lessons/17682?language=javascript 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 다트 게임의 계산 로직을 풀어보았다. *의 경우 자신과 뒤에 값에 2를 곱해주어야 해서 가장 나중에 계산하려고 했다. 따라서 S, D, T, #의 경우에 계산되는 값을 먼저 계산하였다. 이 과정에서 reduce를 사용하여 유일한 두 자리 숫자인 10은 이전 값과 현재 값을 문자열 더하기로 합쳐주었다. 그 후에 *을 찾고, 값을 계산하고 splice로 *을 없애주었다. 이 때문에 forEach가 아닌 for문을 사용하였다. 마지막으로 reduce로 누적 계산하여 답을 도출했다. 나의 풀이 functi..

IT/Algorithm 2021.10.06

프로그래머스) 체육복

https://programmers.co.kr/learn/courses/30/lessons/42862?language=javascript 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 예전에 통과하지 못하고 다른 사람의 풀이를 보았던 문제이다. 지금이라면 풀 수 있을까 하여 다시 풀어보았고, 통과하였다! function solution(n, lost, reserve) { const lostFilterdAndSorted = lost.filter(number => !reserve.includes(number))...

IT/Algorithm 2021.10.01

프로그래머스) 최소 직사각형

https://programmers.co.kr/learn/courses/30/lessons/86491?language=javascript 코딩테스트 연습 - 8주차 [[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 나의 풀이 한 쌍의 값 중 큰 값을 large 리스트에 push 하고, 작은 값은 small 리스트에 push 하였다. 그리고 large 리스트에서 가장 큰 값과, small 리스트에서 가장 큰 값의 크기를 answer에 선언하여 리턴했다. function solution(sizes) { const largeSideNumber = []..

IT/Algorithm 2021.10.01

프로그래머스) 숫자 문자열과 영단어

https://programmers.co.kr/learn/courses/30/lessons/81301?language=javascript 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 나의 풀이 정규 표현식을 사용하여 0부터 9까지 replace 함수를 메소드 체이닝 하였다. 그리고 parseInt로 감싸서 숫자로 반환하였다. function solution(s) { return parseInt(s.replace(/zero/g, "0") .replace(/one/g, "1") .replace(/t..

IT/Algorithm 2021.10.01

프로그래머스) 내적

https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 풀이 a 배열을 원소 a와 인덱스 i로 맵핑해서 각 값에 b[i]를 곱한다. 바로 reduce로 a 배열을 누산한다(초기값 0으로 설정). var solution = (a, b) => a.map((a,i) => a * b[i]).reduce((acc,cv)=>{return acc..

IT/Algorithm 2021.07.06

프로그래머스) 로또의 최고 순위와 최저 순위

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 일치하는 번호의 배열 cor_list와 가려져 보이지 않는 배열 zero_list를 만들었다. win_nums에 대한 forEach 메소드로 값과 인덱스를 불러왔다. 그리고 lottos 배열에도 들어있는 숫자들을 cor_list에 넣었다. lottos의 가려진 숫자 0은 zero_list에 넣었다. 최고 순위는..

IT/Algorithm 2021.07.06

프로그래머스) [1차] 비밀지도

https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 arr1과 arr2 두 배열을 각각 2로 계속 나누어 나머지가 1이면 1, 없다면 0을 새로운 배열에 집어넣었다. 그렇게 2진수로 변환하여 for문을 돌려 각 자리마다 2진수를 더했고 1 이상인 경우 #을, 0이라면 공백을 집어넣었다. 마지막으로 join('')을 사용하여 배열을 문자열로 변환하였다. ㅠㅠ 2진수로 변환하는 과정을 간소화할 방법이 떠..

IT/Algorithm 2021.07.05

프로그래머스) 음양 더하기

https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 풀이 reduce 메소드를 활용하였고, 삼항 연산자로 signs의 값에 따라 부호를 부여하였다. 그리고 answer에 덧셈 누산을 시켜 값을 반환하였다. function solution(absolutes, signs) { var answer = 0; absolutes.reduce((acc,cv,idx) => { cv = signs[idx]..

IT/Algorithm 2021.07.05

프로그래머스) 모의고사

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
반응형