티스토리 뷰

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


풀이

  • 문자열 s를 받아 아스키코드로 변환하여 n만큼 이동시킨 후 다시 문자열 형태로 출력해야한다
  • z를 넘어갈 경우 다시 a부터 시작하고, Z를 넘어갈 경우 다시 A부터 시작해야한다
  • char타입은 문자의 형태와 아스키코드의 숫자 형태 모두 표현이 가능하다
  • n 은 int 타입이므로 더한 후 형변환을 해줘야한다
  • 문자열 문제에서 char 타입이 엄청 많이 쓰인다 더 익숙해져야겠다
  • 처음에는 변수를 엄청 많이 써서 코드가 길었는데 통과한 후 코드를 정리하니 겹치는 변수가 많았다 변수를 남발하지 말아야겠다

코드

class Solution {
  static public String solution(String s, int n) {
		String answer = "";
	      
	      for(int i=0; i<s.length(); i++) {
	    	  char ch = s.charAt(i);
	    	  if(ch == ' ') {
	    		  answer += Character.toString(ch);
	    		  continue; // 공백일경우 다음 문자 탐색
	    	  }
	    	  else if(Character.isLowerCase(ch)) { // 소문자일 경우
	    		  ch = (char) (ch+n); // n만큼 이동
	    		  if(ch>122) // z가 넘어갔을 때
	    			  ch = (char) (97+(ch-123)); // a부터 다시 시작
	    	  } else if(Character.isUpperCase(ch)) { // 대문자일 경우
	    		  ch = (char) (ch+n); // n만큼 이동
	    		  if(ch>90)  // Z를 넘어갔을 때
	    			  ch = (char) (65+(ch-91)); // A부터 다시 시작
	    	  }
	    	  answer += Character.toString(ch);
	      }
	      return answer;
	}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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
글 보관함