스탠다드반 자료조사 - https://nbcssw.tistory.com/20
데일리 루틴
46번 - 숫자 문자열과 영단어
https://school.programmers.co.kr/learn/courses/30/lessons/81301
function engToNumber(s){
switch(s.join('')){
case 'zero':
return 0;
case 'one':
return 1;
case 'two':
return 2;
case 'three':
return 3;
case 'four':
return 4;
case 'five':
return 5;
case 'six':
return 6;
case 'seven':
return 7;
case 'eight':
return 8;
case 'nine':
return 9;
default:
return null;
}
}
function solution(s) {
var answer = [];
let temp = [];
for(let i=0; i<s.length; i++){
if(s[i]%1 !== 0){
temp.push(s[i]);
}
else if (s[i]%1 === 0){
answer.push(Number(s[i]));
continue;
}
if(engToNumber(temp) !== null){
answer.push(engToNumber(temp));
temp = [];
}
}
return Number(answer.join(''));
}
알고리즘 문제풀이 3
# 문제 1
오늘, 두산 베어스와 기아 타이거스가 야구 경기를 하고 있습니다. 이제, 두산 베어스의 공격 차례입니다. 현재 주자는 아무도 없지만, 두산 베어스는 계속해서 1루타(안타)를 치기 시작합니다.
안타를 칠 때마다 주자들은 1루씩 진루합니다. 두산 베어스가 기아 타이거스보다 더 높은 점수를 얻으려면 최소 몇 개의 안타를 쳐야 할까요? 참고로, 두산 베어스와 기아 타이거스의 점수는 프로그램 실행 시 임의적으로 사용자가 줄 수 있으며 두산 베어스에게 1루타의 신이 강림이 되어 타석을 설 때마다 무조건 1루타를 치는 것이 확정이라고 가정해주세요.
야구의 득점 조건
- 타자는 홈에서 타석을 시작합니다.
- 타자는 홈 → 1루 → 2루 → 3루 → 홈으로 들어오는 순간 1점을 획득합니다.
function solution(doosan, kia){
const gap = kia - doosan;
if (gap < 0)
return 0;
else
return 4 + gap;
}
console.log(solution(0,8));
# 문제 2
이진 배열 `nums`와 정수 `k`가 주어졌을 때, 최대 `k`개의 0을 1로 뒤집을 수 있다면 배열에서 연속된 1의 최대 개수를 반환하세요.
function solution(nums, k) {
let max = 0;
for (let i = 0; i < nums.length; i++) {
// console.log('인덱스 ', i, '부터');
let continuous = 0;
let count = 0;
for (let j = i; j < nums.length; j++) {
continuous++;
if (nums[j] === 0) {
count++;
if (count > k)
break;
// console.log('count = ', count);
}
// console.log('continuous = ', continuous);
}
if (continuous > max){
max = continuous - 1;
// console.log('max = ', max);
}
// console.log('--------------------');
}
return max;
}
const nums = [1,1,1,0,0,0,1,1,1,1,0];
const k = 2;
console.log(solution(nums, k));
# 문제 3
스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.
- 속한 노래가 많이 재생된 장르를 먼저 수록합니다.
- 장르 내에서 많이 재생된 노래를 먼저 수록합니다.
- 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.
노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요.
제약 조건:
- genres[i]는 고유번호가 i인 노래의 장르입니다.
- plays[i]는 고유번호가 i인 노래가 재생된 횟수입니다.
- genres와 plays의 길이는 같으며, 이는 1 이상 10,000 이하입니다.
- 장르 종류는 100개 미만입니다.
- 장르에 속한 곡이 하나라면, 하나의 곡만 선택합니다.
- 모든 장르는 재생된 횟수가 다릅니다.
어떤 식으로 풀어나가야 할 지 모르겠다..