관리 메뉴

Storage Gonie

(5) [C++, Java] 백준 No.11655 : ROT13 본문

알고리즘/백준풀이5. 문자열

(5) [C++, Java] 백준 No.11655 : ROT13

Storage Gonie 2019. 4. 25. 20:30
반응형

문제

풀이

# C++

왜 13을 더해주고 빼주는지는 a~z까지 나열한 후 직접 해보면 알 수 있음.(a~m까지가 13개 m~z까지가 13개)

#include <iostream>
#include <string>

using namespace std;

string rot13(string s) {
    for (int i=0; i<s.size(); i++) {
        if (s[i] >= 'a' && s[i] <= 'm') {
            s[i] = s[i] + 13;
        } else if (s[i] >= 'n' && s[i] <= 'z') {
            s[i] = s[i] - 13;
        } else if(s[i] >= 'A' && s[i] <= 'M') {
            s[i] = s[i] + 13;
        } else if(s[i] >= 'N' && s[i] <= 'Z') {
            s[i] = s[i] - 13;
        }
    }
    return s;
}
int main() {
    string s;
    getline(cin,s);
    cout << rot13(s) << '\n';
}

# Java

import java.util.*;

public class Main {
    public static String rot13(String s) {
        String ans = "";
        for (int i=0; i<s.length(); i++) {
            char c = s.charAt(i);
            if (c >= 'a' && c <= 'm') {   
                c += 13;   
            } else if (c >= 'n' && c <= 'z') {    
                c -= 13;   
            } else if(c >= 'A' && c <= 'M') { 
                c += 13;   
            } else if(c >= 'N' && c <= 'Z') { 
                c -= 13;   
            }
            ans += c;
        }
        return ans;
    }
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        System.out.println(rot13(s));
    }
}
반응형
Comments