일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Baekjoon
- Spotify Api
- SECS/GEM
- python
- 스포티파이
- spotify
- Computer Science
- modern c++
- 프로그래머스
- 회원가입
- 백준
- CS
- 회귀
- SWEA
- SECS
- SW Expert Academy
- MYSQL
- 자바
- Spring
- Spring JPA
- 파이썬
- Gem
- C++
- programmers
- java
- SECS-II
- c
- 비트겟
- spring boot
- regression
Archives
- Today
- Total
비버놀로지
[Programmers 프로그래머스] 12926 시저 암호 본문
728x90
programmers.co.kr/learn/courses/30/lessons/12926
시저 암호는 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다.
그래서 "AB"를 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 된다. "z"는 1만큼 밀면 "a"가 된다.
대문자일 때와 소문자일 때를 나눠서 구현해 준다. 입력값에 숫자를 더해주고 그 더해준 값이 Z를 넘어간다면 "A"값으로 나누어 주어 해당하는 값을 출력해 주는 방식으로 문제를 풀었다.
class Solution {
public String solution(String s, int n) {
String answer = "";
char[] arr = s.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 'A' && arr[i] <= 'Z') {
if(arr[i]+n>'Z') {
arr[i] = (char) ((arr[i] + n) % 'Z'+'A'-1);
}else {
arr[i] = (char) (arr[i] + n);
}
} else if (arr[i] == ' ') {
arr[i] = ' ';
} else if (arr[i] >= 'a' && arr[i] <= 'z') {
if(arr[i]+n>'z') {
arr[i] = (char) ((arr[i] + n) % 'z'+'a'-1);
}else {
arr[i] = (char) (arr[i] + n);
}
}
}
answer = String.copyValueOf(arr);
return answer;
}
}
728x90
'ALGORITM > JAVA' 카테고리의 다른 글
[Programmers 프로그래머스] 12930 이상한 문자 만들기 (0) | 2021.01.08 |
---|---|
[Programmers 프로그래머스] 12928 약수의 합 (0) | 2021.01.08 |
[Programmers 프로그래머스] 70128 내적 (0) | 2021.01.08 |
[Programmers 프로그래머스] 12925 문자열을 정수로 바꾸기 (0) | 2021.01.07 |
[Programmers 프로그래머스] 12922 수박수박수박수박수박수? (0) | 2021.01.07 |
Comments