코드의 여백

[프로그래머스] Lv. 1 시저 암호(Java)

by rowing0328
https://school.programmers.co.kr/learn/courses/30/lessons/12926
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

정답 코드

public class Solution {
	
    public String solution(String s, int n) {
    	StringBuilder builder = new StringBuilder();
        for (char c : s.toCharArray()) {
        	builder.append(push(c, n));
        }
        return builder.toString();
    }
    
    private char push(char c, int n) {
    	if (!Character.isAlphabetic(c)) return c;
    	int offset = Character.isUpperCase(c) ? 'A' : 'a';
        int position = c - offset;
        position = (position + n) % ('Z' - 'A' + 1);
        return (char) (offset + position);
    }
    
}

 

설명

  1. 입력 문자열의 모든 문자에 대해 반복
  2. 알파벳이 아닌 경우 문자를 그대로 이어 붙이기
  3. 알파벳인 경우 n만큼 밀어 이어 붙이기

 

실행 결과

 

참고 자료 :

취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략 : 자바 편 | 김현이

 

프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편 | 김현이 - 교보문고

프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편 | 핵심 개념, 프로그래머스에서 선별한 79개 문제 풀이, PCCP 대비까지! 합격에 한 걸음 더 가까워지는 실전형 코딩 테스트 문제 풀이 가이드개

product.kyobobook.co.kr

블로그의 정보

코드의 여백

rowing0328

활동하기