☞ 문제

☞ 코드
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
package algo01;
public class CaesarCode {
// 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다.
// 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다.
// 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.
public static String solution(String s, int n) {
String answer = "";
char[] charAs = s.toCharArray();
char ch = 0;
int a = 0; //아스키코드 값과 입력 받은 값을 더한 변수
for(int i = 0; i < charAs.length; i++) {
a = (int)charAs[i];
if(a > 64 && a < 91) {
a += n;
if(a > 90) {
a -= 26; //ex) z, 2를 입력했을 때, 92가 되지만 66이 나와야 하기 때문에 -26
}
} else if(a > 96 && a < 123) {
a = a + n;
if(a > 122) {
a = a - 26;
}
}
ch = (char)a;
charAs[i] = ch;
}
answer = String.valueOf(charAs);
return answer;
}
public static void main(String[] args) {
String s;
int n;
Scanner sc = new Scanner(System.in);
System.out.println("문자열을 입력해주세요.");
s = sc.nextLine();
Scanner sc2 = new Scanner(System.in);
System.out.println("숫자를 입력해주세요.");
n = sc.nextInt();
System.out.println(solution(s,n));
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
☞ 실행결과

음 조건문만 잘 주면 쉬운 문제였당^^.....
다음 문제부터는 for문을 활용할 때 향상된 for문을 써봐야겠다~!
아 그리고 이제 정확성은 귀찮아서 스샷 안 찍으련다....ㅎ....
'Algorithm' 카테고리의 다른 글
예산 (1) | 2019.05.03 |
---|---|
콜라츠 추측 (0) | 2019.04.28 |
나누어 떨어지는 숫자 배열 (2) | 2019.04.22 |
두 정수 사이의 합 (4) | 2019.04.18 |
가운데 글자 가져오기 (1) | 2019.04.15 |