[Programmers] 124 나라의 숫자
·
💯 CodingTest/Programmers
▶ 문제 : https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr ▶ 코드 : function solution(n) { const nums = ['4', '1', '2']; let answer = ''; while(n > 0){ const remainder = n % 3; if(remainder === 0){ n = n/3 - 1; }else{ n = Math.floor(n / 3); } answer = nums[remainder] + answer; } return answer; } ▶ 문제 풀이 : - 문제풀이가 생각보다 쉽지 않았다. 특히 3진수의 경우 자릿수 증가에 의한 처리가 가..
[Programmers] 멀쩡한 사각형
·
💯 CodingTest/Programmers
▶ 문제 : https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr ▶ 코드 : function solution(w, h) { const total = w * h; const g = gcd(w, h); // g 즉, 최대공약수는 대각선으로 나누었을때 반복되는 사각형형태가 등장하는 횟수이다. const miniSquare = w/g + h/g - 1; // 각각의 작은 사각형은 가로를 g로 ..
[Programmers] (Javascript) 순위 검색
·
💯 CodingTest/Programmers
https://programmers.co.kr/learn/courses/30/lessons/72412 a-b); data.set(key, temp); } } function solution(info, query) { let answer = []; makeData(info); let keyList = [...data.keys()]; query.map((s) => { s = s.split(' '); let qScore = s.pop(); s= s.filter((element) => {if (element !== '-' && element !== 'and'){return true;}}); let temp = keyList.filter((key) => s.every(word => key.includes(word..
[Programmers] (Javascript) 메뉴 리뉴얼
·
💯 CodingTest/Programmers
https://programmers.co.kr/learn/courses/30/lessons/72411?language=javascript# 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr ▶ 코드 : function solution(orders, course) { let answer = []; let data = new Map(); for (const order of orders) { let orderToArr = [...order]; orderToArr = orderToArr.sort(); for (let i..
[Programmers] (Javascript) 추석 트래픽
·
💯 CodingTest/Programmers
https://programmers.co.kr/learn/courses/30/lessons/17676#qna count) { count = temp; } } return count; } ▶ 문제 풀이 : 1. 초기 각각의 로그 정보 문자열들에 대해 시간을 초의 누적으로 변환한다. - 해당 문제의 경우 소수점 셋째자리까지 나타나 있기에 1000을 곱하여 정수형태로 변환한뒤 시작시간과 끝시간의 초(second)누적값을 data 배열에 저장했다. 2. 이제 해당 값들을 이용해 탐색하여 1초동안 처리된 로그수의 최대값을 찾아야하는데 초기 완전탐색을 이용해 구현했으나 시간초과가 나왔다. 3. 이로인해 로직에 변화를 주어야 했고, 종료시간을 기준으로 오름차순된 정렬된 데이터(lines)임에 착안하여 각 로그의 종료..
[Programmers] (Javascript) 튜플
·
💯 CodingTest/Programmers
https://programmers.co.kr/learn/courses/30/lessons/64065?language=javascript 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr ▶ 코드 : function solution(s) { var answer = []; var data = new Map(); // 입력으로 들어오는 문자열 파싱 var reg = new RegExp(/[\{\}]/,'g'); s = s.replace(reg, ''); s = s..
[Programmers] (Javascript) 수식 최대화
·
💯 CodingTest/Programmers
https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr ▶ 코드 : function solution(expression) { var orders = [ ['*', '+', '-'], ['*', '-', '+'], ['+', '-', '*'], ['+', '*', '-'], ['-', '+', '*'], ['-', '*', '+'], ]; let answer = -1; for (const order of orders..