(Python) 알고리즘문제 D+4

Kepler·2020년 2월 13일
0

알고리즘

목록 보기
4/8

문제

숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.

num: 숫자

return: true or false (뒤집은 모양이 num와 똑같은지 여부)

예를 들어,
num = 123
return false
=> 뒤집은 모양이 321 이기 때문

num = 1221
return true
=> 뒤집은 모양이 1221 이기 때문

num = -121
return false
=> 뒤집은 모양이 121- 이기 때문

num = 10
return false
=> 뒤집은 모양이 01 이기 때문


해답_1 (my solution)

def same_reverse(num): 
  str_x = str(num)
  is_palindrome = True
  
  for i in range(len(str_x) // 2):
    if str_x[i] != str_x[-1 -i]:
      is_palindrome = False
      return is_palindrome
    else:
      return is_palindrome
  if len(str_x) == 1:
    is_palindrome = True  
    return is_palindrome
  • 모델 솔루션과 비교하여, 로직은 같으나 else, return을 생략할 수 있을때는 생략하는 연습을 해야겠다.
  • 길이가 1일때 check하는 로직은 자꾸 repl.it 테스트를 통과하지 못해서 넣었는데, 로직상 첫번째 for문과 같기 때문에 필요가 없다. 왜 테스트 통과를 못했는지 의문이다..

해답_2 (model solution)

def same_reverse(num):
	num =str(num)
	is_palindrome = True
    
	for i in range(len(num) // 2):
		if num[i] != num[-1 - i]:
		   is_palindrome = False
			
	return is_palindrome
  • 단어 길이의 절반 (몫만 사용하기 때문에 연산자는 // 사용) 동안, 문자열의 첫번째와 마지막 두번째와 마지막에서 두번째... 순으로 문자열이 같은지를 비교한다.

  • 같지 않은 순간에 도달했을 때, is_palindrome = False로 설정하고, 리턴한다.

profile
🔰

0개의 댓글