https://school.programmers.co.kr/learn/courses/30/lessons/120899
def solution(array):
# answer = []
# answer.append(max(array))
# answer.append(array.index(max(array)))
# answer = [0, 0]
# max = 0
# for i, j in enumerate(array):
# if j > max:
# max = j
# answer[0] = max
# answer[1] = i
max = 0
for i in range(len(array)):
if array[i] > max:
max = array[i]
# answer[0] = max
# answer[1] = i
answer = [array[i], i]
return answer
answer의 0, 1번째 인덱스에 max와 index를 채우는 기가막힌 방법이 잘 떠오르지 않았다.
풀이를 보니 깔끔한 방식은 있었지만, 기본적으로 크게 차이가 나진 않았다.
def solution(array):
return [max(array), array.index(max(array))]
Edge = 5이고
부모, 노드 순으로 iterable이
2 1 2 5 1 6 5 3 6 4인 이진트리에서
Node = 1일 때 자손의 수를 세기
# 1. 자손은 양 방향으로 갈라진다.
# ch1, ch2
# 2. 재귀를 이용해서 count한다.
# 3. 부모 자식의 관계는 리스트로 구조화한다.
# 부모 : 리스트의 인덱스(i), 자식 : 리스트의 값(list_[i])
# 3-1. 부모노드에서 N만큼의 자식이 있다면 N만큼의 리스트가 필요하다.
# 주어진 문제는 이진트리이므로 2개의 리스트가 필요하다.
E, N = map(lnt, input().split())
# 부모 자식 쌍의 리스트
pair_list = list(map(int, input().split()))
# 부모 기준으로 재정리한다.
for i in range(len(pair_list), 2)
parent, child = pair_list[i], pair_list[i+1]
# 여기서 두 개의 리스트에 child를 담는다.
# ch1 = []
# ch2 = []
코드로 쓰는 건 쉽지만(?) 설명하기 위해서는 많이 길어질 것 같다.
이 문제를 풀면서
1. range()에서 0, 굳이 넣어야 해? 하면서 jump=2를 stop에 적용시킨다던지,
2. ch1, ch2에 값을 채우는 조건문을 세우면서 얕게 생각해서 값이 입력되지 않는다던지,
3. count를 함수 안에 넣지 않아서 계속 결과가 같게 나온다던지
실수가 많았다.
이게 작은 실수이긴 한데,.. (그래도 금방 고쳤다는 점에서?)
반복하니까 내 한계가 계속 느껴져서 좀 슬프다..
# def solution(numbers):
# positive_num = []
# negative_num = []
# for i in range(len(numbers)):
# if numbers[i] > 0:
# positive_num.append(numbers[i])
# elif numbers[i] < 0:
# negative_num.append(numbers[i])
# positive_num.sort(reverse=True)
# negative_num.sort(reverse=True)
# try:
# if positive_num[0] * positive_num[1] > negative_num[0] * negative_num[1]:
# return positive_num[0] * positive_num[1]
# else:
# return negative_num[0] * negative_num[1]
# except IndexError:
# return positive_num[0] * positive_num[1]
# IndexError를 처리하고도 런타임 에러......
def solution(numbers):
...
오늘 과제가 좀 .. 많..다?