<문제 설명>
일정한 자원을 갖고 있는 특수한 컴퓨터로 글을 쓰려 한다.
A-Z순서대로 65-90의 비용이 소모되고, 공백은 32의 비용이 소모된다.
컴퓨터의 자원과 보내려는 글이 다음과 같을 때 보낼 수 있는 글을 출력하시오.
(단, 왼쪽 글자부터 순차적으로 전송한다.)
let str = 'K O R E A'
let count = 450
let abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ '
let num = []
let result = []
let answer = ''
for(let i = 65; i <= 90; i++){
num.push(i)
} num.push(32)
for(let i = 0; i < str.length; i++){
let temp = abc.indexOf(str[i])
count -= num[temp]
result.push(num[temp])
if(count<=0)
break
answer+=str[i]
}
console.log(result)
console.log(answer)
<문제 풀이>
A-Z에 맞게 각각 65~90의 수가 주어지므로,
공백은 32의 숫자가 주어지기 때문에 변수에 A-Z와 공백을 넣었다.
65~90으로 다른 한 배열을 만들고, 동일하게 끝에 32을 넣었다.
주어진 문자열을 알파벳 배열에서 검사하여 해당 인덱스를 확인하고,
그 인덱스를 새로 만든 숫자 인덱스에서 사용하여 자원에서 차감했다.
그리고 0이하로 카운트가 떨어지면 멈추며 answer에 해당되는 문자열을 넣었다.
728x90
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스 | JavaScript] 조건에 맞게 수열 변환하기 1 (삼항연산자 간단 예제) (0) | 2023.05.09 |
---|---|
[프로그래머스 | JavaScript] 비밀지도 (0) | 2023.05.06 |
[프로그래머스 | JavaScript] 배열 조각하기 (0) | 2023.05.02 |
[백준 | JavaScript] 15552 빠른 A+B (0) | 2023.05.01 |
[프로그래머스 | JavaScript] 예산 (0) | 2023.05.01 |