2022-3-9
a = [1, 2, 3, 4, 5]
a = list(map(lambda num : num + 100, a))
print(a)
- 정답 : [101,102,103,104,105]
핵심개념
함수 설명
| lambda |
함수를 한 줄로 간단히 표현할 때 사용 (익명 함수) |
| map(func, iterable) |
반복 가능한 객체(iterable)의 각 원소에 함수를 적용 |
풀이
- a = [1, 2, 3, 4, 5]
- map(lambda num : num + 100, a)
- 리스트 a의 각 원소(num)에 num + 100 수행
- list(...)
- print(a)
2022-2-13
a = "REMEMBER NOVEMBER"
b = a[0:3] + a[12:16]
c = "R AND %s" % "STR"
print(b + c)
풀이과정
R(0) E(1) M(2) E(3) M(4) B(5) E(6) R(7) (8)
N(9) O(10) V(11) E(12) M(13) B(14) E(15) R(16)
- a[0:3] → REM
- a[12:16] → EMBE
- b → REMEMBE
- c → R AND STR
- print(b+c) → REMEMBER AND STR
2025-1-17
class Node:
def __init__(self, value):
self.value = value
self.children = []
def tree(li):
nodes = [Node(i) for i in li]
for i in range(1, len(li)):
parent_index = (i - 1) // 2
nodes[parent_index].children.append(nodes[i])
return nodes[0]
def s(node, level=0):
if not node:
return 0
total = node.value if level % 2 else 0
for child in node.children:
total += s(child, level + 1)
return total
li = [3, 5, 8, 12, 15, 18, 20]
root = tree(li)
print(s(root))
풀이
- 트리 구조 (li = [3, 5, 8, 12, 15, 18, 20])
- 괄호 속 숫자는 리스트 인덱스,
- level은 깊이 (루트: 0, 자식: 1, 손자: 2)
- 3(0) / \\ 5(1) 8(2) / \\ / \\ 12(3) 15(4) 18(5) 20(6)
- 레벨별 노드값
- level 0: 3
- level 1: 5, 8
- level 2: 12, 15, 18, 20
- s() 함수의 합산 규칙
- level % 2 == 1 (홀수 레벨)만 더함
- → 합산 대상: level 1 노드들
- 계산 과정
- level=0: 3 (짝수) → 합산 안 함
- level=1: 5 + 8 = 13
- level=2: (12, 15, 18, 20은 짝수 레벨) → 합산 안 함
- 결과
- print(s(root)) # 13
- 최종 출력값: 13
2025-2-17
lst = [1, 2, 3]
dst = {i: i*2 for i in lst}
s = set(dst.values())
lst[0] = 99
lst[2] = 7
dst[2] = 7
s.add(99)
print(len(s & set(dst.values())))
핵심개념
- set()
- 집합 연산자 & (교집합)
- A & B : 두 집합 A, B의 공통 원소를 반환한다.
풀이
- lst = [1, 2, 3]
- dst = {i: i*2 for i in lst}
- s = set(dst.values())
- lst[0] = 99, lst[2] = 7
(이미 생성된 dst는 변하지 않음)
- dst[2] = 7
- dst = {1: 2, 2: 7, 3: 6}
- dst.values() = [2, 7, 6]
- s.add(99)
- s & set(dst.values()) = {2, 6}