[백준] 2745:진법변환 (자바)

이지혁·2024년 11월 9일

백준

목록 보기
9/19


  1. 진법 변환 구조

10진법으로 변환한 값에 자릿수에 맞는 B의 거듭 제곱의 값을 곱해줘야 한다.

  1. 알파벳 처리

조건이 대문자만 입력된다고 가정을 했으니

'A' : 65

'Z' : 90

'0' : 48

'A'는 10진법 값이 10이어야 한다. 따라서 'A' - 'A' + 10 을 해주면 10의 값을 얻을 수 있다.

알파벳 처리 => C - 'A' + 10

'0'은 10진법 값이 0이어야 한다. 따라서 '0' - '0' 을 해주면 0의 값을 얻을 수 있다.

0~9 까지의 숫자 처리 => C - '0'

  1. 문자열을 어떻게 10진법의 숫자로 만들까?

String 메서드인 charAt()을 이용해서 char 형태로 하나씩 얻어온다.

char 변수에 char 상수를 빼는 연산을 수행하면 정수값으로 변한다.

(자바에서 char 타입이 사실상 정수형(유니코드)을 기반으로 하기 때문.

연산자를 사용하면 char 타입은 유니코드 값을 가지며 정수형으로 반환된다.

  1. Character.getNumericValue(char C) 활용

Character 클래스에 아주 유용한 메서드가 있었다.

그냥 문자 자체를 아스키코드가 아닌 정수로 바꿔준다.

대소문자 상관없이 a~z 까지는 10~35까지 바꿔주고

. , ? ! 과 같은 기호는 -1로 출력된다.

0개의 댓글