[프로그래머스_1] 시저암호 JAVA

2023. 3. 23. 06:09·알고리즘/알고리즘 풀이
반응형

 

프로그래머스

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

programmers.co.kr

 

CODE

class Solution {
    public String solution(String s, int n) {
        StringBuffer answer = new StringBuffer();
        boolean isUpper = false;
        char alphabet = ' ';
        int len = 0;

        for(int i = 0; i < s.length(); i++) {
            len = n;
            if(s.charAt(i) == ' ') {
                answer.append(" ");
                continue;
            }
            else if(Character.isUpperCase(s.charAt(i))) {
                alphabet = (char)(s.charAt(i) + len);
                isUpper = true;
            }
            else {
                alphabet = (char)(s.charAt(i) + len);
                isUpper = false;
            }

            if( (isUpper && alphabet > 'Z') || (!isUpper && alphabet > 'z') ) {
                if(isUpper) {
                    alphabet = (char)('A' + (len = (n+s.charAt(i))-'Z') -1);
                }
                else {
                    alphabet = (char)('a' + (len = (n+s.charAt(i))-'z') - 1);
                }
            }
            answer.append(alphabet);
        }
          return answer.toString();
    }
}

처음 제출했었을 때는 테스트 9번 빼고 다 실패가 떴었다. 보고 진심 헛웃음 남..

기존에 제시된 테스트 케이스는 모두 통과됐었는데 제출하니 이상해서 테스트 케이스를 더 찾아봤다.

근데 신기하게도 이 두 테스트 케이스를 추가해도 통과가 떴다. 프로그래머스 오류인가 싶어 내 코드를 주석처리하고 인터넷에 떠도는 정답 코드도 돌려봤는데 신기하게 통과가 떠서 후다닥 실행 중지를 눌렀다. ㅎㅎㅎㅎ 역시 내가 문제였다.

그래서 코드를 천천히 다시 살펴봤는데 이럴수가 세상에 마상에 매개변수 n으로 넘어온 값을 연산처리 후 저장해버려서 실패가 뜨는 거였다. 데이터를 소중하고 안전하게 다뤄야겠다. n 값을 len 변수에 담고 연산처리하니 제대로 통과되었다!

 

 

실행 결과

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 풀이' 카테고리의 다른 글
  • [프로그래머스_1] 삼총사 JAVA
  • [프로그래머스_1] 두 개 뽑아서 더하기 JAVA
  • [프로그래머스_1] 예산 JAVA
  • [프로그래머스_1] 이상한 문자 만들기 JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링부트
    에러해결
    전자정부프레임워크
    springboot
    백준
    알고리즘
    oracle
    Spring
    QueryDSL
    인프런
    운영체제
    프로그래머스
    JPA
    프론트엔드
    자바스크립트
    기출문제
    SQL
    토이프로젝트
    코딩테스트
    SpringBoot를 이용한 RESTful Web Service 개발
    MSA
    넥사크로
    Java
    IT
    egov
    방통대
    react
    토비의스프링부트
    개발자
    RESTful
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[프로그래머스_1] 시저암호 JAVA
상단으로

티스토리툴바