1. 문제https://www.acmicpc.net/problem/11501 2. 풀이과정😢문제를 보자마자 생각이 든 풀이(시간초과)1. 날 별 주가 배열에서 최댓값을 찾는다.. 2. 최댓값보다 앞에 위치하면서 작은 모든 값을 배열에서 제거 시킨다. 3. 다시 1번으로 돌아가 다음 최댓값을 찾는다. 위 로직을 배열이 빌때까지 반복최댓값을 계속 다시 찾는 과정에서 문제가 시간초과가 난 것 같다. 😃 정답 로직배열을 역으로 순회하면 그냥 뒤에서 부터 최댓값을 구한다. 순회 중에 현재까지의 가장 비싼 주가가 남는다!이 가격보다 비싸게 파는 날를 만나기 전까지는 모두 현재까지의 최대 가격으로 팔아주면 최고 익절이다. 최적화 로직:최대 주가 찾기: 뒤에서부터 현재까지의 주가 중 가장 비싼 날을 찾는다. 이익 ..
1. 문제https://www.acmicpc.net/problem/1913 2. 풀이과정일단 단순 규칙만 파악해서 풀었는데 방향을 바꿀때 로직을 단순화 시킬 수 있을 것 같아. 나중에 리펙토링 해보려고한다. 3. 자바스크립트 정답 코드const fs = require('fs');const filepath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';const input = fs.readFileSync(filepath).toString().trim().split('\n');const n = +input[0];const target = +input[1];let targetPoint = [];let currentRow = Math.floor(n..
1. 문제https://www.acmicpc.net/problem/20291 2. 풀이과정1. map 자료구조를 사용해서 key = 확장자명, value = 카운트 수으로 저장2. 확장자 문자열 사전순 정렬3. 출력 📛주의할 점이 문제 자바스크립트로 풀다보면 😡시간초과😡를 만날 수 있을 것이다....로직 문제인줄 알고 계속 헤맸는데...이유는 바로 출력부분에 있었는데 한줄씩 console.log를 하면 시간초과가 발생한다!하나의 문자열로 만든 후 결과 console.log 한번에 출력하자! 3. 자바스크립트 정답 코드const filepath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';const input = require('fs..
1. 문제https://www.acmicpc.net/problem/21608 2. 풀이과정이런 구현 문제는 풀기 전 설계를 완료하고 코드를 짜야한다.- 설계1. 입력된 순서대로 앉힌다.2. 학생을 앉힐 때 현재 교실(board)의 모든 빈자리에 대한 인접 정보를 받아서 저장3. 인접 정보는 해당 빈자리의 좌표, 인접 빈자리 개수, 인접 좋아하는 학생의 수를 가진다.4. 3으로 수집한 인접 정보들을 조건에 맞게 정렬하여 특정 학생의 최적의 자리 선정5. 해당 자리에 학생을 앉힌다.6. 모두 앉힌 이후 조건에 따라 만족도를 조사한다. - 구현 함수 설명getSeatInfo(r, c, studentNum) : 특정 자리 좌표와 학생 번호를 매개변수로 받음특정 자리 좌표를 기준으로 4방향 탐색 -> 빈자리 수,..
1. 문제https://www.acmicpc.net/problem/20436 2. 풀이과정1. 초기 세팅 왼손으로 눌러야 하는 알파벳을 키로, 해당 알파벳의 좌표를 값으로 갖는 맵(left)을 생성한다. 오른손으로 눌러야 하는 알파벳을 키로, 해당 알파벳의 좌표를 값으로 갖는 맵(right)을 생성한다. 현재 왼손과 오른손의 초기 위치를 각각 currentLeft와 currentRight에 저장 2. 문자열 탐색 및 시간 계산 입력 문자열의 각 문자를 순회하면서 map 함수에서 해당 알파벳의 좌표를 받아온다. 현재 눌러야 할 손가락과의 거리 차이만큼 count를 증가시킨다. 그리고 현재 손가락의 좌표를 해당 문자의 좌표로 업데이트한다. 3. 자바스크립트 정답코드const fs = require('fs')..
1. 문제https://www.acmicpc.net/problem/1244 2. 풀이과정반복문으로 전체 학생들(operations[]) 순회시킴- 만약 남자(1)이라면 번호를 배수로 증가시키고 그때 인덱스는 번호 - 1로 접근하여 값을 뒤집는다.- 만약 여자(2)라면 번호 - 1위치 뒤집고 좌우로 지속적으로 확인하면서 같은 경우라면 값을 뒤집음.다른 값이 나온다면 break 시킨다. 🚨주의 할 점출력시 20개씩마다 줄바꿈을 해주어야함!! 3. 자바스크립트 정답코드const fs = require('fs')const filepath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';const input = fs.readFileSync(filep..