🧐 알고리즘/⏳ 알고리즘 풀이

[Algorithm] 대칭수 확인하기

콩드로이드 2022. 9. 19. 17:57

대칭수를 확인해보는 알고리즘

가운데 숫자를 기준으로 서로 대칭하는 숫자인지 확인

예를 들어, 

121 => True

1221 => True

-121 => 121- False

 


입력받는 값 : n

 

생각한 과정

1. 문자열로 변경

2. 문자열로 변경한 뒤 중간을 기준으로 substring 

3. 앞 배열 , 뒤 배열을 만든 뒤 뒤의 배열을 reverse해서 비교 

 

놓친 과정

1. 가운데 기준으로 같다면 substring을 거치지 않아도 됨

2. 문자열 자체를 하나의 배열로 생각해서 reverse 시켰을 때가 같으면 대칭수

3. 배열 자체를 비교하지 말고, contentEquals를 사용해 내용 자체를 비교 

 

다시 생각한 과정

1. 음수가 되면 -가 붙어서 대칭이 될 수 없으므로 양수인 경우만 로직을 타게 

2. 우선 입력받은 값을 charArray로 만들고 , 그걸 뒤집은 결과와 비교 

fun compare(n: Int): Boolean {
    return if(n>0) n.toString().toCharArray().contentEquals(n.toString().toCharArray().reversedArray()) else false
}

 

처음 생각한 과정보다 비교도 안되게 코드가 줄어들었다 🥲

 

'🧐 알고리즘 > ⏳ 알고리즘 풀이' 카테고리의 다른 글

[kotlin] 가장 가까운 같은 글자  (0) 2023.06.30
과일 장수 - kotlin  (0) 2023.06.23