본문 바로가기

Python45

[알고리즘] 백준 8979번: 올림픽 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 📝 문제 올림픽은 참가에 의의가 있기에 공식적으로는 국가간 순위를 정하지 않는다. 그러나, 많은 사람들이 자신의 국가가 얼마나 잘 하는지에 관심이 많기 때문에 비공식적으로는 국가간 순위를 정하고 있다. 두 나라가 각각 얻은 금, 은, 동메달 수가 주어지면, 보통 다음 규칙을 따라 어느 나라가 더 잘했는지 결정한다. 금메달 수가 더 많은 나라 금메달 수가 같으면, 은메달 수가 .. 2024. 4. 5.
[알고리즘] 백준 10431번: 줄세우기 https://www.acmicpc.net/problem/10431 10431번: 줄세우기 초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1 www.acmicpc.net 📝 문제 우선 아무나 한 명을 뽑아 줄의 맨 앞에 세운다. 그리고 그 다음부터는 학생이 한 명씩 줄의 맨 뒤에 서면서 다음 과정을 거친다. 자기 앞에 자기보다 키가 큰 학생이 없다면 그냥 그 자리에 서고 차례가 끝난다. 자기 앞에 자기보다 키가 큰 학생이 한 명 이상 있다면 그중 가장 앞에 있는 학생(A)의 바로 앞에 선다. 이때, A부터 그 뒤의 모든 학생들은 공간을 만들기 위해 한 발씩 뒤로 물러서.. 2024. 4. 5.
[알고리즘] 백준 9655번: 돌 게임 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 📝 문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. ⌨️ 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000) 🖥️ 출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. 💡 아이디어 홀수개로만 빠지면 그냥.. 2024. 4. 5.
[알고리즘] 백준 5073번: 삼각형의 세 변 https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net ⌨️ 입력 각 줄에는 1,000을 넘지 않는 양의 정수 3개가 입력된다. 마지막 줄은 0 0 0이며 이 줄은 계산하지 않는다. 🖥️ 출력 정삼각형일 경우 Equilateral, 이등변삼각형일 경우 Isosceles, 모두 다를 경우 Scalene, 될 수 없는 경우 Invalid를 출력한다. 💡 아이디어 우선 삼각형이 될 수 없는 경우를 필터링한다. 3개의 숫자를 상호비교하고, 같을 경우 cnt에 1씩 더한다. 🧑🏻‍💻 코드 while True: arr = list(ma.. 2024. 4. 5.
PY4E Chapter 11. Regular Expressions 정규표현식 간단하게 문자열을 찾을 수 있게 해주는 표현식이다. 사용하려면 import re를 입력해서 정규식 라이브러리를 가져와야 한다. re.search() 문자열의 find(), startswith() 메서드와 비슷한 역할을 하지만 하려는 작업마다 일일이 메서드를 바꾸지 않아도 되기에 편안하다. # find() hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if line.find('From:') >= 0: print(line) # re (find) import re hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('From:',.. 2022. 8. 9.
PY4E Chapter 10. Tuples Tuple 튜플은 소괄호(())로 이루어져 있으며 위치와 순서가 정해져 있어 리스트와 비슷하게 작동한다. x = ('Glenn', 'Sally', 'Joseph') print(x[2]) # Joseph y = (1, 9, 2) print(y) # (1, 9, 2) print(max(y)) # 9 for iter in y: print(iter) # 1 # 9 # 2 튜플이 리스트와 다른 점은 변경을 할 수 없다는 것이다. 튜플의 이점은 용량을 적게 차지하고 접근이 빠르기 때문에 리스트보다 효율적이다. 튜플과 딕셔너리 items() 메서드를 통해 반환되는 값은 키와 밸류로 이루어진 튜플의 리스트이다. d = {'csev' : 2, 'cwen' : 4} tups = d.items(): print(tups) #.. 2022. 8. 8.
PY4E Chapter 9. Dictionaries Dictionary 딕셔너리는 중괄호({})로 이루어져 있으며 리스트와 다르게 순서가 없다. 대신 키 값으로 호출이 가능하다. 연관배열(Associative Arrays)이라고도 한다. 리스트와 같이 원소의 추가와 삭제가 가능하다. # 비어있는 딕셔너리 만들고 추가하기 purse = dict() # 빈 중괄호도 가능 purse['money'] = 12 purse['candy'] = 3 purse['tissues'] = 75 print(purse) # {'money' : 12, 'tissues' : 75, 'candy : 3} # 연산하기 purse['candy'] = purse['candy'] + 2 print(purse) # {'money' : 12, 'tissues' : 75, 'candy : 5} .. 2022. 8. 8.
PY4E Chapter 8. Lists List 리스트는 대괄호([])로 이루어져 있으며, 여러가지 자료를 다양한 위치에 담을 수 있다. 리스트는 보통 for문과 같이 쓰이는데, 리스트 안의 모든 원소를 반복할 때 순서대로 다루는 for문이 가장 적합하기 때문이다. 리스트는 위치와 순서가 정해져 있고 내부 내용을 자유롭게 바꿀 수 있으며 len()함수로 리스트의 길이 즉 원소의 개수를 반환받을 수도 있다. # 리스트의 위치 출력 friends = ['Joseph', 'Glenn', 'Sally'] print(range(len(friends))) # [0, 1, 2]를 출력 # 리스트 슬라이싱 t = [9, 41, 12, 3, 74, 15] t[1:3] # [41, 12] t[:4] # [9, 41, 12, 3] t[3:] # [3, 74, 1.. 2022. 8. 8.