[프로그래머스|JAVA] 시저 암호 | 🌐 아스키코드 값 (유니코드) 활용 | 간단 코드

2025. 8. 25. 16:34·💻코딩/💡Programmers
728x90
반응형

[문제 링크]

 

프로그래머스

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

programmers.co.kr

[문제]

 

 


 

📍 [코드]

class Solution {
    public String solution(String s, int n) {
        String answer = "";
        
        for(char c : s.toCharArray()){
            if(c == ' ') answer += ' ';
            else if(c >= 'A' && c <= 'Z') {
                char shifted = (char)(((c - 'A' + n) % 26) + 'A');
                answer += shifted;
            }
            else if(c >= 'a' && c <= 'z') {
                char shifted = (char)(((c - 'a' + n) % 26) + 'a');
                answer += shifted;
            }
        }
        return answer;
    }
}

 

💡 접근법

    •  toCharArray()를 활용하여 문자로 다루며
    • 공백일 땐 공백 그대로 반환하도록
    • 대문자일 땐 n만큼 이동한 대문자를 반환하도록
    • 소문자일 땐 n만큼 이동한 소문자를 반환하도록 조건 작성
      • c의 값이 무엇이든 첫 문자인 'A' 또는 'a'를 빼면 0부터 인덱스를 갖게 된다.
        ➡️ ex. 'A' - 'A' = 0 / 'C' - 'A' = 2

      • 자기의 위치에서 n만큼 더하여 이동 시킨다.
        ⭐️ % 26 하는 이유 : 인덱스는 0-25까지만 가능
        ⭐️ 'Z' - 'A' = 25 이므로 나머지를 활용하여 순환하도록 ("Z" + 1 → A"  /  "Z" + 2 → B" )

      • 이후 'A' 또는 'a'를 더하여 문자 코드로 바꾼 후 저장

✅ 유니코드(아스키코드 값) 활용

 

 


 

💬 마무리

아스키코드 값을 통해 형변환하여 이동시키는 것은 쉽고 간편하지만, 인덱스를 어떻게 활용해야 좋을지
많이 생각해봐야 하는 것 같다.
z의 경우 순환하는 부분을 생각하기까지가 오래 걸린 것 같다.

 

 

 

 

728x90
반응형

'💻코딩 > 💡Programmers' 카테고리의 다른 글

[프로그래머스|JAVA] 서버 증설 횟수 📈 | 배열 활용 | 쉬운 코드 ⭕️  (0) 2025.08.25
[프로그래머스|JAVA] K번째 수 | 정렬 | List 활용 📚  (1) 2025.08.25
[프로그래머스|JAVA] 가운데 글자 가져오기 | 간결 & 쉬운 코드 📚 | 간편하게 String 형변환 방법 포함 ⭕️  (2) 2025.08.25
[프로그래머스|JAVA] 최댓값과 최솟값 | 🔢 Integer.MAX_VALUE / Integer.parseInt 활용  (1) 2025.08.25
[프로그래머스|JAVA] 하샤드 수 | 🌐 아스키코드 활용 -> 형변환  (5) 2025.08.25
'💻코딩/💡Programmers' 카테고리의 다른 글
  • [프로그래머스|JAVA] 서버 증설 횟수 📈 | 배열 활용 | 쉬운 코드 ⭕️
  • [프로그래머스|JAVA] K번째 수 | 정렬 | List 활용 📚
  • [프로그래머스|JAVA] 가운데 글자 가져오기 | 간결 & 쉬운 코드 📚 | 간편하게 String 형변환 방법 포함 ⭕️
  • [프로그래머스|JAVA] 최댓값과 최솟값 | 🔢 Integer.MAX_VALUE / Integer.parseInt 활용
망꼬누나
망꼬누나
공부한 내용을 정리하는 공간입니다.
  • 망꼬누나
    망꼬누나의 개발 공부
    망꼬누나
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • ℹ️ 정보 및 실습 (19)
        • ☑️ Git & GitHub (8)
        • ☑️ 프로젝트 (6)
        • ☑️ 회고 및 후기 (5)
      • 🛠 CS (1)
      • 💻코딩 (88)
        • 💡Baekjoon (17)
        • 💡Programmers (71)
      • ✏️공부 (48)
        • 💡OS (1)
        • 💡Network (6)
        • 💡SpringBoot (9)
        • 💡JAVA (21)
        • 💡SQL (1)
        • 💡DB (2)
        • ☁️ Cloud (4)
        • 💡알고리즘 (4)
      • 📌 자격증 (6)
        • 📝정보처리기사 (3)
        • 📝SQLD (3)
  • 블로그 메뉴

    • 홈
    • github
  • 나의 GitHub Contribution 그래프
    Loading data ...
  • 인기 글

  • 태그

    자료구조
    AWS
    데브코스
    트랜잭션
    GIT
    baekjoon
    github
    Stream
    Java
    알고리즘
    S3
    map
    코딩테스트
    프로그래머스 #JAVA
    동시성제어
    프로그래머스
    네트워크
    자바
    Set
    백엔드
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.5
망꼬누나
[프로그래머스|JAVA] 시저 암호 | 🌐 아스키코드 값 (유니코드) 활용 | 간단 코드
상단으로

티스토리툴바