[ Programmers ] 시저 암호 (Java)

ma.caron_g·2021년 5월 7일
0

Lv.1 - Programmers (완성)

목록 보기
17/74
post-thumbnail

1. Problem 📃

[ 시저 암호 ]
https://programmers.co.kr/learn/courses/30/lessons/12926


2. Constraint 🔗


3. Solution 🔑

  1. 입력받은 알파벳(s)을 입력된 수(n) 만큼 미루면 암호가 나오는 구조이므로
    입력받은 알파벳(s)을 한글자 한글자씩 따와서 소문자인지 대문자인지 판단.
    //소문자 z(아스키코드 : 90)에 25가 더해지면 나중에 대문자 계산에서 오류 날 수 있으므로
  2. 판별한 문자가 공백이면 그대로 answer 문자열에 담아준다.
  3. 판별한 문자에 n을 더해서 'z' / 'Z' (90/122)이 넘어가면 'a' / 'A'(65/97)로 돌아가서 더하고 남은 (n)을 더해준다.
  4. 나온 글자를 answer 문자열에 += 연산자를 통해 붙여주고 마지막에 answer에 반환.

4. Code 💻

class Solution {
	public String solution(String s, int n) {
		String answer = "";
		int ascii = 0;
		for(int i=0; i<s.length(); i++) {
			int judge = 0;	//0 이면 (대문자), 1이면 (소문자)
			ascii = s.charAt(i);
			if(ascii >= 97) {
				judge = 1;		//소문자로 판단
			}
			if(ascii != ' ') {
				ascii = ascii + n;
				if(judge==0 && ascii > 90) {
					answer += (char)(65+ascii-91); 
				}
				else if(judge ==1 && ascii>122) {
					answer += (char)(97+ascii-123);
				}
				else {
					answer += (char)(ascii);
				}
			}
			else if(ascii == ' ') {
				answer += ' ';
			}
		}
		return answer;
	}
}
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글