공간대여가 풀리지 않았었어서 한 2번째 코딩 팀대항전~
이제 풀려서 다음주부터는 유목민 생활 끝이다!
<10768번 특별한 날>
from sys import stdin
M = int(stdin.readline())
D = int(stdin.readline())
if M < 2:
print("Before")
elif M == 2:
if D < 18:
print("Before")
elif D == 18:
print("Special")
else:
print("After")
else:
print("After")
<2775번 부녀회장이 될테야>
from sys import stdin
T = int(stdin.readline())
def func(n,lists): # 다음 층의 인원수 리스트 반환 함수
result =[]
for i in range(n):
rere = sum(lists[0:i+1])
result.append(rere)
return result
for _ in range(T):
k = int(stdin.readline()) # 층
n = int(stdin.readline()) # 호
reresult = [ i+1 for i in range(n)]
for _ in range(k):
reresult = func(n, reresult)
print(reresult[n-1])
수학적인 규칙을 찾아내려 햇지만 넘 어려워서 포기하고
한층씩 계산하는 함수를 만들어서 돌렸다!
<1620번 나는야 포켓몬 마스터 이다솜>
from sys import stdin
N, M= map(int,stdin.readline().split())
pokeList = []
for _ in range(N):
pokeList.append(stdin.readline())
for _ in range(M):
rere = stdin.readline()
if rere in pokeList:
print(pokeList.index(rere)+1, )
else:
print(pokeList[int(rere)-1], end="")
틀렸다ㅠㅠ시간초과난다ㅜㅜ
그리고
stdin.readline()쓰면 뒤에 \n가 붙게 되어서 end=""로 처리했는데
rstrip()으로 처리하는 것이 더 깔끔한 것 같다.
딕셔너리..!가 시간복잡도를 줄이는 데 효과적이라고 했다.
from sys import stdin
N, M= map(int,stdin.readline().split())
pokeList = {}
for i in range(N):
pokeList[i+1]=(stdin.readline().rstrip())
repokeList = {v:k for k,v in pokeList.items()}
for _ in range(M):
rere = stdin.readline().rstrip()
if rere.isdigit():
print(pokeList[int(rere)])
else:
print(repokeList[rere])
isdigit()
<1764번 듣보잡>
from sys import stdin
N, M= map(int,stdin.readline().split()) # 듣 / 보
hear = set()
see = set()
for _ in range(N):
hear.add(stdin.readline())
for _ in range(M):
see.add(stdin.readline())
result = hear.intersection(see)
result = sorted(result)
print(len(result))
for cha in result:
print(cha, end="")
sort는 알파벳순 정리도 됨..!
집합을 쓰기 위해서 set
<2563번 색종이>
from sys import stdin
N = int(stdin.readline()) # 색종이개수
paList =[]
result = 100*N
for _ in range(N):
x, y = map (int, stdin.readline().split())
for i in range(len(paList)):
X = 10-abs(x-paList[i][0])
Y = 10-abs(y-paList[i][1])
if X > 0 and Y > 0:
rere = X*Y
result -= rere
paList.append([x,y])
print(result)
ㅠㅠ뭐가 틀린지 모르겠어서 게시판에 글을 올렸다
고수님이 반례를 찾아 주셨다.
아하.. 색종이는 하난데 또 겹치면 또 뺴버렸구나..
아 처음 생각대로 할걸! 점만 면으로 생각했으면 되는데!!!
[[0 for _ in range(100)] for _ in range(100)]
오오
from sys import stdin
N = int(stdin.readline())
papList=[[0 for _ in range(100)] for _ in range(100)]
for _ in range(N):
x, y = map (int, stdin.readline().split())
for X in range(x-1,x+9):
for Y in range(y-1,y+9):
papList[X][Y] = 1
result = 0
for cha in papList:
result += cha.count(1)
print(result)
성공~
리스트만 쓰지 말고
set이랑 딕셔너리 사용에도 익숙해지자
끗!
'✨ Club|Project > Ec.crew 코딩 스터디' 카테고리의 다른 글
𝗘𝗰.𝗰𝗿𝗲𝘄 2기 5회차 문제 풀기 (0) | 2022.09.29 |
---|---|
𝗘𝗰.𝗰𝗿𝗲𝘄 2기 4회차 문제 풀기 (1) | 2022.09.22 |
Ec.crew 2기 2회차 팀대항전 문제 (0) | 2022.09.09 |
🫐Ec.crew 2기 1회차 OT🫐 (0) | 2022.08.31 |
🍇Ec.crew 1기 마무리/되돌아보기🍇 (0) | 2022.08.30 |