개발관련/매일 코딩 테스트 챌린지

자바스크립트 구름 코딩테스트 문제 구름 숫자

개발자 Dane 2023. 7. 7. 15:26
반응형

 

구름 코딩테스트 문제 구름 숫자

https://level.goorm.io/exam/163678/%EA%B5%AC%EB%A6%84-%EC%88%AB%EC%9E%90/quiz/1

 

구름LEVEL

구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입

level.goorm.io

진짜 짜증 나는 문제였습니다.

 

솔루션

// Run by Node.js
const readline = require('readline');

(async () => {
	let rl = readline.createInterface({ input: process.stdin });
	let data = [] 
	for await (const line of rl) {
		data.push(line)
		rl.close();
	}
	const length = data[0]
	const text = data[1]
	
const num = {
      'qw': '1', 'as': '2', 'zx': '3', 'we': '4', 'sd': '5',
      'xc': '6', 'er': '7', 'df': '8', 'cv': '9', 'ze': '0'
    };

    let i = 2;
    let answer = num[text.slice(0, 2)];

    while (true) {
      if (i < length) {
        if (text.slice(i - 1, i + 1) in num) {
          let n = num[text.slice(i - 1, i + 1)];
          answer += n;
        } else {
          let n = num[text.slice(i, i + 2)];
          i++;
          answer += n;
        }
        i++;
      } else {
        break;
      }
    }

    console.log(answer);

	
	process.exit();
})();

제일 큰 경우의 수를 구하는 것이기 때문에 중첩됐다고 생각하고 순환하면서 구하면 된다.

 

배운 점

 

 

반응형