반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 백준
- 무료코딩강의
- 자바의정석연습문제풀이
- 자바의정석연습문제
- 백준자바
- 다이나믹 프로그래밍
- 코딩공부
- 시간 복잡도
- 개발공부
- ☆
- 백준알고리즘
- BFS
- 자바
- 알고리즘공부
- 자바의정석
- java
- ★
- 백준단계별로풀어보기
- dfs
- 백준9단계
- 자바공부
- 자바개념
- 동적계획법
- dp
- 무료개발강의
- 브루트포스
- 빅오 표기법
- 알고리즘
- Java개념
- 백트래킹
Archives
- Today
- Total
더 많이 실패하기
공부 91일차-2: 백준 11655번 ROT13 자바 Java 본문
반응형
11655 ROT13
https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
백준 11655번 문제 ROT13
문제
과정 생각해보기
이것 역시 간단한 문제
문자열을 받고 charAt() 메서드로 한글자 한글자씩 점검
알파벳이라면 13씩 더해주고, 알파벳의 범위를 넘는다면 알파벳의 총 개수인 26을 빼주면 원래 자리를 찾는다
소문자와 대문자를 나눠야 하는데, 그 이유는 아스키코드에서 소문자와 대문자 사이에 다른 문자들이 껴 있으므로,
같은 조건으로 주면 대문자들은 모두 소문자의 범위를 벗어나서 모두 26씩 뺄셈되기 때문이다
정답 인정 코드
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
31
32
33
34
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String str = br.readLine();
for(int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if('a' <= ch && ch <= 'z') { //소문자라면
ch += 13; //13을 민다
if(ch > 'z') { //알파벳 범위를 넘어간다면
ch -= 26; //26(알파벳 총 개수)를 빼준다 (순환 위함)
}
} else if('A' <= ch && ch <= 'Z') { //대문자라면
ch += 13;
if(ch > 'Z') { //알파벳 범위를 넘어간다면
ch -= 26; //26을 뺴준다
}
}
sb.append(ch);
}
System.out.println(sb);
}
}
|
cs |
주석에 설명 열심히 달았다
알고리즘 기초에 있는 문제들인데 난이도가 엄청 들쑥날쑥한 것 같다
반응형
Comments