일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- iOS14
- string 함수
- 자료구조
- scanf
- Django Nodejs 차이점
- c++
- getline
- Django의 편의성
- correlation coefficient
- k-eta
- double ended queue
- 매크로
- vscode
- 프레임워크와 라이브러리의 차이
- 시간복잡도
- 입출력 패턴
- 장고란
- 엑셀
- string 메소드
- 연결요소
- 표준 입출력
- Django란
- 입/출력
- 구조체와 클래스의 공통점 및 차이점
- 이분그래프
- 2557
- EOF
- UI한글변경
- 백준
- 알고리즘 공부방법
Archives
- Today
- Total
Storage Gonie
(5) [C++, Java] 백준 No.11655 : ROT13 본문
반응형
문제
풀이
# 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));
}
}
반응형
'알고리즘 > 백준풀이5. 문자열' 카테고리의 다른 글
(7) [C++, Java] 백준 No.11656 : 접미사 배열 (0) | 2019.04.25 |
---|---|
(6) [C++, Java] 백준 No.10824 : 네 수 (0) | 2019.04.25 |
(4) [C++, Java] 백준 No.2743 : 단어 길이 재기 (0) | 2019.04.25 |
(3) [C++, Java] 백준 No.10820 : 문자열 분석 (0) | 2019.04.25 |
(2) [C++, Java] 백준 No.10809 : 알파벳 찾기 (0) | 2019.04.25 |
Comments