오늘은 크게 어려운 점이 없어서 바로 본론으로 들어가면 될 듯하다.
문제
이번에 문제를 보고 생각한 풀이는 입력받은 정수를 문자열로 먼저 바꾸고 리턴될 타입이 정수형 배열이기 때문에
미리 리턴될 배열의 길이를 정해놓고 그 안에 요소를 하나씩 주어진 숫자의 역순으로 대입해주면 될 것이다.
풀이
먼저, n을 문자열로 저장할 numberToString 변수를 만들었다.
여기에 정수 n을 toString()으로 문자열로 변환해 대입해주었다.
answer는 리턴될 정수형 배열로 만들어져있었지만 처음엔 intArrayOf()를 통해 만들어져 있었고,
이 때 배열의 길이를 정하려고 위처럼 numberToString.length를 파라미터로 주었지만
해당하는 숫자 하나만을 가진 길이 1짜리 배열이 생성되었고...
이를 코틀린 공식 페이지에서 확인해보니 정수형 배열 생성 시
intArrayOf()를 통해 생성 시 파라미터에는 elements. 즉, 요소들을 파라미터로 주어야 했다.
이와 다르게 내가 사용한 IntArray()를 통해 정수형 배열을 생성하면 생성자를 통해 그 size를 정할 수 있었다.
이후, for문을 사용해 문자열의 길이만큼 반복하고 리턴될 배열의 첫 번째 칸부터
numberToString 변수의 맨 뒤 인덱스의 문자를 숫자로 넣어주면 끝이었다.
처음에는 그냥 Character.getNumericValue()를 사용하지 않고 대입을 했더니 '문자'형으로 배열에 값이 저장되었다.
그래서, 어떻게하면 해당하는 유니코드값이 아닌 숫자 그대로 저장할 수 있을까 검색하다보니 찾은 결과가
Character 클래스의 getNumericValue() 메소드를 사용하는 것이었다.
이 글을 쓰면서 마지막에 찾아보니 Character 클래스는 java.lang 패키지에 있는 기본 클래스였다고 한다.
'프로그래머스' 카테고리의 다른 글
약수의 합 코틀린(Kotlin) (0) | 2022.08.10 |
---|---|
JadenCase 문자열 만들기 코틀린(Kotlin) (0) | 2022.08.09 |
숫자 문자열과 영단어 코틀린(Kotlin) (0) | 2022.08.07 |
음양 더하기 코틀린(Kotlin) (0) | 2022.08.05 |
수박수박수박수? 코틀린(Kotlin) (0) | 2022.08.04 |