티스토리 뷰
문제
문제해석
- 아스키코드를 이용하여 문자를 판별합니다.
1. char형의 문자열s 길이만큼의 빈배열을 만들어줍니다.
2. 빈 배열에 문자를 입력된 문자 하나하나를 집어 넣어 줍니다.
3. 배열에 들어간 문자가 대문자인지, 소문자인지, 공백인지 판별해줍니다.
- 여기서 판별해주는 이유는 마지막 Z,z값이 넘어가게되면 A,a로 돌려줘야 하기때문에 판별 해줍니다.
4. 그리고 입력된 문자와 +n값이 90,122를 초과하게 되면 다시 앞으로 돌려줘야 하기 때문에 -26+n으로 A~Z까지 순환되게 해줍니다.
5. 공백이면 " "를 넣어 주면 됩니다.
코드
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 | class Sol{ public String solution(String s,int n) { char[] ch1 = new char[s.length()]; StringBuffer sb1 = new StringBuffer(); for(int i=0;i<ch1.length;i++) { ch1[i] = s.charAt(i); if(Character.isUpperCase(ch1[i])) { //대문 if(ch1[i]+n > 90) { int cnt = ch1[i]-26+n; sb1.append((char)cnt); }else { int cnt2 = ch1[i]+n; sb1.append((char)cnt2); } } else if(Character.isLowerCase(ch1[i])) {//소문 if(ch1[i]+n > 122) { int cnt = ch1[i]-26+n; sb1.append((char)cnt); }else { int cnt2 = ch1[i]+n; sb1.append((char)cnt2); } } else { //공백 sb1.append(" "); } } return sb1.toString(); } } public class pass2 { public static void main(String[] args) { // TODO Auto-generated method stub Sol ss = new Sol(); System.out.println(ss.solution("X Y Z", 1)); } } | cs |
github.com
'JAVA' 카테고리의 다른 글
[JAVA Project] 자바를 이용하여 블랙잭 게임 만들기 (0) | 2019.02.20 |
---|---|
알고리즘 연습 -수박수박수박수... - JAVA (0) | 2019.01.14 |
알고리즘 연습 - 소수 찾기 - JAVA (에라토스테네스의 체 알고리즘) (0) | 2019.01.14 |
알고리즘 연습 - 문자열 내림차순으로 배치하기 - JAVA (0) | 2019.01.14 |
알고리즘 연습 - 문자열 내 P와 Y의 개수 - JAVA (0) | 2019.01.14 |