일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- SECS
- Digital Marketing
- 암호화폐규제
- Cars
- Baekjoon
- 암호화폐
- ai이미지변환
- 암호화폐시장
- 파이썬
- SECS/GEM
- programmers
- spring boot
- Spring
- Gem
- java
- 백준
- 암호화폐투자
- 프로그래머스
- CS
- C++
- Spring JPA
- 지브리필터
- finance & economics
- Investing
- c
- 비트코인
- 스테이블코인
- python
- coins
- 자바
Archives
- Today
- Total
비버놀로지
[Programmers 프로그래머스] 12926 시저 암호 본문
반응형
programmers.co.kr/learn/courses/30/lessons/12926
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가
programmers.co.kr
시저 암호는 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다.
그래서 "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;
}
}
반응형
'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