본문 바로가기

Spring

Java 알고리즘 학습

신나는? 알고리즘

오늘은 알고리즘을 통해 아스키 코드를 활용하는 방법을 중심으로 문제를 해결햇다.

아스키 코드

아스키 코드란, "미국정보교환표준부호" 라고하며 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 예를 들어 int 97이 있다고 할때, 이는 (char) 97을 통해 변환하면 a 라는 알파벳이 나오는 것을 말한다. 이에따라

 List<String> alphabet = new ArrayList<>();
        for (int i = 97; i <= 122; i++) {
            alphabet.add(String.valueOf((char) i));
        }

와 같은 코드로 a~ z까지 영문 알파벳 리스트를 제작하였다.

이와 같은 데이터가 필요했던 이유는 이번 과정의 문제가 "둘만의 암호" 라는 이름의 문제로 주어진 String 에서 index 만큼 뒤에 있는 알파벳으로 문자를 바꾸는데 skip이라고 주어진 String에 포함된 단어는 생략하고 하나 더 넘기는 형식으로 풀어야 했다.

이를 해결하기 위해 몇가지 방법을 생각했다.

  • Just 아스키 코드
    • 사실 단순하게 해석한다면 그저 아스키 코드만 가지고 97 부터 122 까지 라는 것을 활용하여 사용가능하기도 하다 그러나 리스트로 뽑아 인덱스로 활용하는 편이 보다 편리해 보여 이런 방향으로 택했다.
  • 현재풀이

List를 활용하여 indexOf를 통해 풀이하는 것이다. 이때의 장점은 아스키 코드를 활용하면 97122 사이의 숫자를 활용해야 해서 뭔가 불편해보인다 라는 생각이 들었지만 현재는 0~25의 숫자를 활용해 % 26 을 통해 확인 가능하다는 것이 장점이였다.

  • 과정

해당 문제의 접근과정은 간단했다. 리스트를 만들었으니char\[\] words = s.toCharArray(); 와 같은 코드를 통해 string을 char 배열로 변경하고 이를 다시 int -> + index 생락된 글자에서 +1 씩 하는 것을 통해 풀었다.

'Spring' 카테고리의 다른 글

LocalDate 와 String  (0) 2023.12.05
알고리즘 풀이 - 자료구조  (0) 2023.11.27
기능 구현 - 비회원 기능  (0) 2023.11.08
트러블 슈팅 - 중복 저장 문제  (0) 2023.11.06
항해 99 - 트러블 슈팅 Optional(Likes)  (1) 2023.10.25