스터디/파이썬 스터디 과제

[3팀 / 김은수] 7차시 파이썬 과제 - 자료구조

lyra8 2023. 5. 17. 19:53

1번

nums = [2, 7, 11, 15, 3, 6, 9, 13]
target = 9

def find_pairs(nums, target):
    pairs = set()
    for i, num1 in enumerate(nums):
        for j, num2 in enumerate(nums):
            if i != j and num1 + num2 == target:
                pair = (min(num1, num2), max(num1, num2))
                pairs.add(pair)
    return list(pairs)

print(find_pairs(nums, target))

 

2번

string1 = "abcdefghijklmnopqrstuvwxyz"
string2 = "hello world"

def is_unique(string):
    chars = set(string) 
    return len(string) == len(chars) 

print(is_unique(string1)) 
print(is_unique(string2))

 

3번

from collections import Counter

string = "abcccdefgggghiiii"

def most_common_char(string):
    char_count = Counter(string) 
    return max(char_count, key=char_count.get)

print(most_common_char(string))

4번 정답 4번

왜냐하면 튜플은 순서가 없기 때문에 순서 0번째가 존재할 수 없다.

 

5번 정답 1번

왜냐하면 set함수를 사용하면 중복된 값들이 사라지는데 중복된 값을 제외하고 {0,1,3,4,5,7,9} 이렇게 만들어진다. 여기서 [1:5]는 {1,3,4,5}기 때문에 답은 1번이다.

 

6번 정답 1번

b=3이고 c=2016이고 c는 b에서 이미 맨 처음 값이 없어졌기 때문에 이를 고려하고 순서를 계산하면 정답은 2019가 된다.

 

 

7번

from collections import deque

n, k = map(int, input().split())
people = deque(range(1, n+1))
result = []

while people:
    people.rotate(-(k-1)) 
    result.append(str(people.popleft()))

print("<" + ", ".join(result) + ">")

 

8번

k = int(input())
stack = []

for i in range(k):
    num = int(input())
    if num == 0:
        stack.pop() 
    else:
        stack.append(num) 

print(sum(stack))