재귀함수
-
백준 7568번 덩치 어떻게 풀었나. 잘못 푼 과정 참고백준 2023. 1. 16. 00:01
잘못 푼 방법 입력을 A리스트에 모두 받는다. 몸무게를 첫번째, 키를 두번째 기준으로 정렬해 새로운 배열 sortA에 저장해 준다. 그후 알맞게 반복문을 돌려 sortA[i]와 sortA[i-1]을 비교하여 순위를 정해 준다. 그리고 중복되는 값이 있다면, 중복되는 값의 순위도 똑같이 복사 해 준다. (마지막 if문) from sys import stdin N = int(stdin.readline()) A = [list(map(int, stdin.readline().split())) for _ in range(N)] ranking = [-1]*N sortA = sorted(A, key=lambda x : (-x[0], -x[1])) count = 1 t = 0 for i in range(N): if i ..
-
백준 2447번 별찍기-10 어떻게 풀었나. 재귀함수 사용. 파이썬백준 2023. 1. 15. 00:01
푼 방법 우선 재귀함수(f(n))를 사용해서 문제를 풀기로 한다. 재귀함수 f(n) 에서는 총 n*n 을 출력한다. 그 출력을 9등분 하여 가운데 부분은 n//3 * n//3 크기의 " " (빈 문자열)을 출력한다. 그다음, 가운데 부분의 주변 8부분은 f(n//3)을 출력한다. 만약에 n == 3이라면 """***\n* *\n***"""을 출력한다. 처음에는 재귀함수 안에서 바로 별을 프린트를 해 주려 했으나, 그렇게 하면 f(3)을 여러번 출력할때 옆으로 계속해서 출력 할 수 없었다. 그러므로 이차원 배열(ans)에 저장하여 .join()함수로 출력해 준다. ********* * * ** * ********* *** *** * * * * *** *** ********* * ** ** * *******..
-
백준 2750번 어떻게 풀었나백준 2022. 12. 29. 00:01
좋았던점 아날로그로 알고리즘을 생각하니 잘 떠올랐다. 재귀함수와 while문에 조건을 추가하는것의 차이점을 알았다. 재귀함수는 while문보다 오래걸리고, 간단하게 생각하면 된다. while문은 재귀함수보다 적게걸리고, 마지막 부분에 변수를 잘 바꿔 주어야 한다. 에러코드 보는 능력이 좋아진거 같다. 영상에서 봤던 insertion sort를 썻다. 고치면 좋을 부분 아니 그냥 정렬할거면 그냥 .sort()를 사용하면 됐었다. ???? 아니이걸 새롭게 알게 된 사실 파이썬의 .sort()와 sorted()는 Tim sort 알고리즘을 사용한다. 출처 - https://memostack.tistory.com/30 더 알아보고 싶은 것 Tim sort 코드 N = int(input()) A = [0]*N f..
-
백준 2667번 어떻게 풀었나백준 2022. 12. 5. 11:50
좋았던점 메모에 어떻게 풀어나갈지, 쉬운거 부터 써가면서 시작하니까, 어느부분을 고민해야되는지 알 수 있어서 좋았다 어이없이 쉬운 알고리즘이라도 그것도 알고리즘이다 알고리즘을 점차 구체적으로 만들어 나가면 된다 그러다 보니, 재귀함수를 통해서 문제를 풀면 좋겠다는것을 깨달았다. 고치면 좋을 부분 파이썬을 아직 완벽하게 다루지는 못해서 입력과 리스트 손볼때 구글링이 좀 필요했다. 그런 부분은 알고리즘을 겪으면서 경험을 쌓는걸로.. 같은알고리즘을 계속 반복해야된다 -> 재귀함수