[BaekJoon] 2579번 계단 오르기
·
💯 CodingTest/BaekJoon
▶ 문제 : http://acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net ▶ 코드 : let input = require('fs').readFileSync(`BaekJoon/testcase.txt`).toString().split('\n'); const [N, ...temp] = input; const stairs = temp.map(n => Number(n)); const dp = Array(N).fill(0); dp[0] = stairs[0]; dp[1] = Math.max..
[Baekjoon] 1764 듣보잡
·
💯 CodingTest/BaekJoon
▶ 문제 : https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net ▶ 코드 : let input = require('fs').readFileSync(`Computer Science/Alogrithms/백준JS/testCase.txt`).toString().split('\n'); let data = new Map(); let answer = []; const [n,m] = input[0].split(' ').map(num => parseInt(num..
[Baekjoon] 1676 팩토리얼 0의 개수
·
💯 CodingTest/BaekJoon
▶ 문제 : https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net ▶ 코드 : let input = require('fs').readFileSync(`Computer Science/Alogrithms/백준JS/testCase.txt`).toString().split('\n'); function count5(num){ let count = 0; while(num % 5 === 0){ num = parseInt(num / 5) count += 1; } return count } const inputNum = parseInt(input[0]..
[Baekjoon] 1389번 케빈 베이컨의 6단계 법칙
·
💯 CodingTest/BaekJoon
▶ 문제 : https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net ▶ 코드 : let input = require('fs').readFileSync(`Computer Science/Alogrithms/백준JS/testCase.txt`).toString().split('\n'); const [n, m] = input[0].split(' ').map(num => parseInt(num)) let kevin..
[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)임에 착안하여 각 로그의 종료..