치춘짱베리굿나이스
[백준] 4378 본문
트ㅏㅊ;
문제
가끔, 그러나 때때로, 우리들은 키보드에서 양손을 오른쪽으로 한 칸씩 이동한 상태로 두고 타자를 치는 경우가 있다. 즉, "ACMICPC.NET"을 위와 같은 방법으로 치게 되면 "SV,OV[V/MRY"이라는 이상한 문장을 보게 된다.
교준이는 장문을 쓰는데, 너무 급한 나머지 위와 같은 오류를 범한 채로 글을 완성해 버렸다. 이 글을 다시 쓰는 것은 교준이에게는 너무 힘든 일이다. 교준이를 대신해서 오류를 고쳐주자.
입력
입력은 여러 줄로 이루어진다. 각 줄은 숫자나 공백, 알파벳 대문자, 위의 키보드에 표시되어 있는 문장 부호로 이루어져 있다. Q, A, Z나 `(back-quote), 단어로 이루어진 키(Tab, BackSp, Control 등)는 입력의 각 줄에 포함되지 않는다. 예외적으로 공백(' ', SpaceBar)은 입력으로 들어올 수 있는데, 스페이스 바는 너무 길어서 교준이가 위의 오류를 범하지 않는다.
출력
각 줄마다 오류를 고쳐 출력한다.
풀이
const qwerty = () => {
let input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\\n");
let stack = [];
for (let j of input) {
for (let i of j) {
switch (i) {
case "1":
stack.push("`");
break;
case "2":
stack.push("1");
break;
case "3":
stack.push("2");
break;
case "4":
stack.push("3");
break;
case "5":
stack.push("4");
break;
case "6":
stack.push("5");
break;
case "7":
stack.push("6");
break;
case "8":
stack.push("7");
break;
case "9":
stack.push("8");
break;
case "0":
stack.push("9");
break;
case "-":
stack.push("0");
break;
case "=":
stack.push("-");
break;
case "W":
stack.push("Q");
break;
case "E":
stack.push("W");
break;
case "R":
stack.push("E");
break;
case "T":
stack.push("R");
break;
case "Y":
stack.push("T");
break;
case "U":
stack.push("Y");
break;
case "I":
stack.push("U");
break;
case "O":
stack.push("I");
break;
case "P":
stack.push("O");
break;
case "[":
stack.push("P");
break;
case "]":
stack.push("[");
break;
case "\\\\":
stack.push("]");
break;
case "S":
stack.push("A");
break;
case "D":
stack.push("S");
break;
case "F":
stack.push("D");
break;
case "G":
stack.push("F");
break;
case "H":
stack.push("G");
break;
case "J":
stack.push("H");
break;
case "K":
stack.push("J");
break;
case "L":
stack.push("K");
break;
case ";":
stack.push("L");
break;
case "'":
stack.push(";");
break;
case "X":
stack.push("Z");
break;
case "C":
stack.push("X");
break;
case "V":
stack.push("C");
break;
case "B":
stack.push("V");
break;
case "N":
stack.push("B");
break;
case "M":
stack.push("N");
break;
case ",":
stack.push("M");
break;
case ".":
stack.push(",");
break;
case "/":
stack.push(".");
break;
case " ":
stack.push(" ");
break;
}
}
stack.push("\\n");
}
console.log(stack.join(""));
};
qwerty();
반성회
스위치 케이스 밭
'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글
[백준] 1074 (0) | 2022.03.17 |
---|---|
[백준] 1629 (0) | 2022.03.17 |
[백준] 2217 (0) | 2022.03.17 |
[백준] 1769 (0) | 2022.03.17 |
[백준] 1145 (0) | 2022.03.17 |
Comments