Algorithm272 [ python ] 코드업 1920 - 2진수 변환 📍 코드업 1920 - 2진수 변환 코드업 1920 - 2진수 변환 ⚡️ 나의 풀이 2진수를 구현하는 법을 알고 있었는데 막상 재귀함수로 풀어보려고하니까 잘 생각이 떠오르지 않았다. 핵심 코드는 이렇다. 나머지를 2로 나눈다. 출력한다. 몫을 2로 나눈다. 언제까지? n이 1보다 작아질때까지 1905번처럼 빈 리스트에 추가해서 join함수를 사용했는데, 그럴필요가 없었다. 비록 정답판정을 받았지만 30분동안 삽질하고 다른코드를 보니까 허무(?)했다. 너무 어렵게 생각하지 말자! # 1번 어렵게 푼 문제 x = 7 result = [] while x != 0: result.append(x % 2) x //= 2 print(result) result = [] def binary(n): if n == 0: r.. 2021. 4. 9. [ python ] 코드업 1905 - 1부터 n까지의 합 구하기 📍 코드업 1905 - 1부터 n까지의 합 구하기 코드업 1905 - 1부터 n까지의 합 구하기 ⚡️ 나의 풀이 쉽게 풀 수 있었는데도 불구하고 어렵게 빙빙 돌아가서 푼 문제였다. sum값에 현재 값을 더한 값을 빈 리스트에 추가한 다음 print()했는데, 그러지 않고도 쉽게 문제를 풀 수 있었다. 1보다 작거나 같은 값은 1로 반환시켜주고 그렇지 않은 값들은 n에 재귀적으로 값을 더해주면 됐다. 너무 어렵게 생각하면 안되겠다는것을 느꼈다. import sys sys.setrecursionlimit(1000000) # 1번(어렵게 푼 문제) sum = 0 def sum_number(n): global sum if n != 1: sum_number(n-1) sum+=n sum_number(int(inpu.. 2021. 4. 9. [ python ] 코드업 1904 - 두 수 사이의 홀수 출력하기 📍 코드업 1904 - 두 수 사이의 홀수 출력하기 코드업 1904 - 두 수 사이의 홀수 출력하기 ⚡️ 나의 풀이 범위내의 값을 출력할때는 어떻게 할까 고민을 했다. 딱히 떠오르지 않아 먼저, 홀수만 출력하는 코드를 짜보자!라는 생각이 들어 샤프를 끄적거리며 홀수만 출력할때 재귀함수의 종료조건을 작성하다가 1 대신에 다른 변수가 들어가면 범위내의 값을 출력할 수 있겠네?!라는 생각을 했다. 그리고 앞선문제와 달리 변수를 2개 받기 때문에 재귀함수 호출 조건에서도 인자를 2개 넣어줘야 했다. 그럼 지금보다 -1 작은값을 넣어줄때마다 a보다 작으면 더 이상 호출을 안하게 설정하면 되겠다. 라는 생각을 했다. 코드를 그대로 구현했더니 정답판정을 받았다. a, b = map(int, input().split(.. 2021. 4. 9. [ python ] 코드업 1902 - 1부터 n까지 역순으로 출력하기 📍 코드업 1902 - 1부터 n까지 역순으로 출력하기 코드업 1902 - 1부터 n까지 역순으로 출력하기 ⚡️ 나의 풀이 이번엔 반대로 n부터 1까지 출력하는 문제이다. 1901문제랑 다른점은 print(n)의 위치인데 여기에서는 다른 함수를 호출하기 전 print(n)을 작성해주었다. 현재 들어온 n값을 먼저 출력하고 다른 함수를 호출하기 때문에 n부터 1까지 순서대로 값이 출력된다. 그리고 호출 한 지점에서부터 다음 코드는 어떤 행위(?)를 하는 코드가 없기때문에 호출만 될 뿐 값은 출력하지 않는다. 이번에도 return 되는 지점을 알고 싶어 명시적으로 작성했다. return을 적지 않아도 본래 함수 맨 마지막에는 return이 들어가있다. def top_down(n): print(f'f({n}).. 2021. 4. 9. [ python ] 코드업 1901 - 1부터 n까지 출력하기 📍 코드업 1901 - 1부터 n까지 출력하기 코드업 1901 - 1부터 n까지 출력하기 ⚡️ 나의 풀이 재귀 함수 문제 중 같은 문제라도 1부터 n까지 구하는 문제가 있는 반면, n부터 1까지 역순으로 구하는 문제도 있다. 재귀 함수에서 알아두어야 할 자료구조는 스택(stack)이다. stack의 특성상 재귀 함수는 나중에 들어온 값이 제일 먼저 나가게 되는 후입선출(LIFO)구조인데, 여기서도 제일 마지막에 호출한 함수를 제일 먼저 호출하는 과정을 거친다. 이 문제는 1부터 n까지 구하는 문제인데, 함수의 호출 순서를 알고 싶어 print(f(n))을 설정했다. 또 마지막에 return을 적지 않아도 되지만, 어떠한 흐름으로 진행되는지 알고 싶어 명시적으로 적었다. 전체적인 흐름은 다음과 같다. 1... 2021. 4. 9. 이전 1 ··· 45 46 47 48 49 50 51 ··· 55 다음