본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1675 : 시저의 암호 1

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1675 시저의 암호 1 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

공백이 있는 영어 문자열이 최대 200글자 입력된다. 단, 공백과 알파벳 소문자외에 다른 문자는 입력되지 않는다.

출력

암호문을 원문으로 복원하여 출력하시오.

예시

  • 입력 : 10 20 30
  • 출력 : 10

Solution (풀이)

  • 풀이 1 : 메모리 11100, 시간 62
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb = new StringBuffer();
        String n = br.readLine();

        for (int i=0; i<n.length(); i++) {
            if (n.charAt(i)==32) {
                sb.append(' ');
            } else if (n.charAt(i)<100) {
                sb.append((char)(122-(99-n.charAt(i))));
            } else {
                sb.append((char)(n.charAt(i)-3));
            }

        }

        System.out.println(sb);
    }

}
  • 풀이 2 : 메모리 11096, 시간 61
class Decode {

    int setDecode(char a) {
        if (a==32) {
            return ' ';
        }

        if ((int)a < 100) {
            return 122-(99-a);
        } else {
            return a-3;
        }
    }
}
public class Answer2 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb = new StringBuffer();
        String n = br.readLine();

        Decode decode = new Decode();

        for (int i=0; i<n.length(); i++) {
            sb.append((char)(decode.setDecode(n.charAt(i))));
        }

        System.out.println(sb);
    }

}

Ranking(순위)

반응형