갓똥
나는야 프로그래머
갓똥
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 프로그래밍 (146)
      • 자바 (9)
      • 안드로이드 (2)
      • 유니티 (20)
      • C++ (38)
      • C# (56)
      • HTML (2)
      • 파이썬 (3)
      • 자료구조 (2)
      • 알고리즘 (0)
      • 문제풀이 (4)
      • 디자인 패턴 (7)
      • 카카오톡 봇 (1)
      • 엑셀 (1)
      • 기타 (1)
    • 게임 (21)
      • 테일즈위버 (0)
      • 카이로소프트 (1)
      • 순위 (19)
      • 기타 (1)
    • 일상 (13)
      • 카페 (1)
      • 방탈출 (12)
    • 기타 (6)
      • 웃긴자료 (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 자바
  • c# 코루틴
  • C# 예외 처리
  • 롤 골드그래프
  • pc게임 순위
  • 게임매출순위
  • 유니티 그래프
  • 게임 매출 순위
  • 유니티 그래프 그리기
  • c# Thread
  • c# coroutine
  • 강남 방탈출
  • 모바일 게임 순위
  • c# delegate
  • pc 게임 순위
  • 전세계게임매출순위
  • C++ virtual
  • C++ 소멸자
  • C# boxing
  • c# collection
  • 유니티 골드그래프
  • 알고리즘
  • C++
  • 2020년 게임 매출
  • 게임 디자인 패턴
  • c# unboxing
  • C++ 상속
  • 글로벌게임매출
  • Unity Graph
  • 전세계 게임 매출

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갓똥

나는야 프로그래머

프로그래밍/자바

[자바] 시저 암호

2018. 4. 3. 11:24
728x90
반응형

 시저암호

 

   어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다.

   A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않습니다.

   보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 caesar 함수를 완성해 보세요.

  • “a B z”,4를 입력받았다면 “e F d”를 리턴합니다.

 


class Caesar {
    String caesar(String s, int n) {
        String result = "";
    
        int num=0;
        char[] arr = new char[s.length()];

        while(n>26) {
            n=n-26;
        }

        for(int i=0; i<s.length(); i++) {
            if(s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
                if((int)s.charAt(i)+n > 'Z')
                    num = (int)s.charAt(i)+n-26;
                else
                    num = (int)s.charAt(i)+n;
                arr[i] = (char)num;
            }
            else if(s.charAt(i) >= 'a' && s.charAt(i) <= 'z') {
                if((int)s.charAt(i)+n > 'z')
                    num = (int)s.charAt(i)+n-26;
                else
                    num = (int)s.charAt(i)+n;
                arr[i] = (char)num;
            }
            else
                arr[i] = s.charAt(i);
            result += arr[i];
        }
        return result;
    }

    public static void main(String[] args) {
        Caesar c = new Caesar();
        System.out.println("s는 'a B z', n은 4인 경우: " + c.caesar("a B z", 4));
    }
}
728x90
반응형

'프로그래밍 > 자바' 카테고리의 다른 글

[자바] N개의 최소공배수  (0) 2018.04.04
[자바] 멀리 뛰기  (0) 2018.04.04
[자바] 숫자의 표현  (0) 2018.04.03
[자바] 하노이의 탑  (1) 2018.04.03
자바 String -> Int // string to int  (0) 2017.09.21
    '프로그래밍/자바' 카테고리의 다른 글
    • [자바] 멀리 뛰기
    • [자바] 숫자의 표현
    • [자바] 하노이의 탑
    • 자바 String -> Int // string to int
    갓똥
    갓똥
    공부하며 알아가는 내용을 정리해 봅니다.

    티스토리툴바