제로타이 2022. 10. 17. 22:55

먼데이 챌린지

요즘 내가 월요일마다 하고 있는 코테. 저번주까지는 30분도 안 걸리는 난이도의 문제들이었는데 오늘은 그래도 조금 제한사항이 있어서 시간이 걸렸다. 중간에 배도 아프고 하는 바람에 시간이 너무 지체돼서 결국 데일리 스크럼 시간 이후까지 문제를 풀게 됐는데, 한 문제는 문제 이해가 제대로 안 돼서 건너뛰었다. 대충 봤을 때는 최장거리 사이클을 찾으라는 문제인데, 문제 설명은 뭔가 너무 이상해서 문제를 풀 열의가 푹 식었다. 문제 읽는 데에만 시간을 많이 쓴 것 같은데, 시간이 많이 지나 그냥 종료하고 나왔다. 지금은 어떻게 풀어야 할지 조금 감이 있는 상태인데, 내일 아침에 다시 해보련다. 

import sys
input = sys.stdin.readline

n = int(input())
inlst = map(int, input().split())
print(sum(inlst))
import sys
input = sys.stdin.readline

lst = {'1':'1.,?!', '2':'2ABC', '3':'3DEF', '4':'4GHI', '5':'5JKL', '6':'6MNO', '7':'7PQRS', '8':'8TUV', '9':'9WXYZ'}

def find(count, num):
	if num in '179': div, count = divmod(count, 5)
	else: div, count = divmod(count, 4)
	print(lst[num][count-1], end='')
	return 0

n = int(input())
inlst = input().rstrip()
i = 0
count = 1
while i < n:
	if i == n-1 or inlst[i] != inlst[i+1]:
		count = find(count, inlst[i])
	count += 1
	i += 1
import sys
input = sys.stdin.readline
from collections import deque

n, m, k = map(int, input().split())
inlst = [[] for _ in range(n+1)]
for _ in range(m):
	s,e = map(int, input().split())
	inlst[s].append(e)
	inlst[e].append(s)
visited = [1 for _ in range(n+1)]
que = deque()
que.append((1, 0))
while que:
	nd, dist = que.popleft()
	if visited[nd]:
		visited[nd] = 0
		if nd == n:
			if dist > k: print('NO')
			else: print('YES')
			break
		if dist >= k: continue
		for i in inlst[nd]: que.append((i, dist+1))
else: print('NO')

예시가 무슨 말을 하는 건지..

3번 물탱크의 물 흐름을 이야기하는데 왜 갑자기 5에서 출발하는지 이해가 안 된다.. 그리고 2번 물탱크에서 3,4번 물탱크로 물을 전달하는 것 아니었나, 그럼 4번은 어떻게 2번에 물을 주는 걸까? 
무슨 말인지 잘 모르겠는데, 아무튼 최장거리 사이클을 원한다는 거잖냐. 
그렇다면 지금 생각으로는 각 노드마다 최장거리 사이클을 저장하는 테이블을 만들면 되지 않을까 싶다. 어차피 양방향 노드라 무조건 사이클은 발생한다.

데일리스크럼

오늘 바로 뽑기를 해서 모더레이터를 골랐는데, 이번에도 내가 오늘 모더레이터가 걸렸다.. 저번에도 이런 적이 있는 것 같은데, 미리 준비를 조금이라도 해두지 않으면 매끄럽게 잘 못하는지라 조금 당황했다. 일단 항상 하던 것들러 대화를 이끌었다. 주말에 뭐했는지에 대한 간략한 프리토킹. 

팀원 미팅

성훈이 형과 팀을 이루고 한번 팀으로서 영입해 볼 법한 인원을 물색하고 dm을 드리는 과정. 김명진 캠퍼님은 읽으신 건지 아닌지.. 일단 답장이 일체 없으셔서 보류했다. 나중에 보니까 확인하신 것 같은데 일단 새로운 분이 팀에 합류했기에 이 분까지 해서 다 같이 이야기하면서 정해야 할 듯.
이상준 캠퍼님과는 컨택이 성공적으로 이뤄져서 14시반에 바로 미팅을 진행했다. 그리고 만나고 조금 이야기 나누고 바로 합류! 우리도 어느 정도 이미 맘에 정해두고 이야기 꺼낸 건데 마침 상준 님도 우리와 함께 할 생각을 어느 정도 하고 계셨다고 한다. 팀에 누가 되지 않도록 열심히 해보이겠다. 자세한 내용은 일기장에!

피어세션

화요일, 목요일에 있을 깃헙 특강 때문에 월요일에 코테를 봤다. 문제는 1135번: 뉴스 전하기 (acmicpc.net) 생각보다 어려워서 아무도 풀지 못 했고, 내일 풀이 한번 공유할 수 있으면 해볼 예정.
용 지각! 정확히 얼마나 지각했는지는 모르겠으나 나중에 참고바람.

 

1135번: 뉴스 전하기

민식이는 회사의 매니저이다. 그리고, 민식이는 회사의 중요한 뉴스를 모든 직원에게 빠르게 전달하려고 한다. 민식이의 회사는 트리 구조이다. 모든 직원은 정확하게 한 명의 직속 상사가 있다

www.acmicpc.net

일단 스크럼 시간에 했던 프리토킹을 조금 이었다. 여기에 정리하자면, 

건: 어제 스터디원과 팀을 결성함. 아는 사람 위주로 컨택해서 포섭을 할 예정. 티스토리 막혀서 공부를 제대로 몬 했다.
희: 치과 갔다가 노래방은 못 가고 미용실 가서 매직. 일욜에는 책을 사서 공부.
용: 별다른 특이사항 무. 팀원 구하는 글을 보고 컨택해서 오늘, 내일 중으로 미팅 예정. 심화과제를 품
고: 태안 가서 펜션! 총 세 대를 운행했으나 한 대에 연기가 나서 돌아올 때는 두 차에 낑겨탔다고 함. 할로윈 분장!
민: 주말에 공부를 하려 했으나 토요일에 올림픽 공원, 성수에서 점심, 정릉에서 풋살이란 일련의 과정을 도보 이동하는 강행군을 밟고, 일요일에는 힘들어서 쉼. 

이후 다음 모임에 대한 짧은 토크. 그래도 한번은 더 봐야지 않겠나!

이야기가 길어져서 심화과제를 일단 진행했다. 지극히 공정한 과정을 거쳐 현욱 님이 심화과제 진행을 맡기로 했다.
np.random.choice에서 복원 추출을 하는 것과 안 하는 것의 차이. 복원 추출을 하게 되면 네가티브 샘플링을 할 품목들 중 어떤 것들은 뽑히지 않을 가능성도 있다. 즉 뽑히지 않은 것에 대해 모델이 학습할 기회를 잃게 되는 것이다. 
첫 주차 심화과제에서도 배치를 만들 때 replace를 하는 것에 대한 논의가 있었는데, 이때도 결과적으로는 비복원추출을 하는 것이 무작위성을 조금은 해치는 방향일 지라도 더 좋은 성능을 내는 것으로 생각됐다. 
토이스토리와 연관되는 영화로 양들의 침묵을 추천하는 모델이 잘 학습되었다고 보기는 어려울 지도..

주석은 내가 직접 하면서 단 것.

네가티브 샘플링한 아이템에 대한 연산을 진행할 때 squeeze는 실질적으로 하지 않아도 상관이 없다. 왜냐하면 샘플 집합은 5개로 만들었기에 결국 마지막 차원은 5가 되기에 -1차원에 대해 squeeze를 진행해도 아무 일도 발생하지 않기 때문이다. 

이후에는 모임에 대한 토킹. 다음 주부터 프로젝트가 시작되면 시간이 부족할 것으로 생각되어 아예 이번 주에 만나는 것으로 뜻을 모았다. 이번 주 금요일에 사당역에서 보기. 미리 와서 일찍 공부해도 상관 없음!
그리고 내일 모더레이터부터는 각자 사당에서 먹을거리를 하나씩 준비해오고, 금요일 만날 때 찾아둔 먹을거리 후보들 중에서 고르기로 정했다.

공부

이번 주는 들어야 할 강의 수는 적어서 크게 부담되지는 않았다. 일단 7강을 들었는데, RNN 내용이 많이 나와서 스터디에서 배웠던 것들이 많이 도움되었다. 조금이나마 이해가 더 된 상태에서 듣다보니 조금 더 잘 와닿은 듯. 그러나 진도로서는 더 많이 빼지는 못 했다. 일단 새로운 팀원을 들이기 위해 두번의 미팅을 가졌고, 오전에는 먼데이 챌린지를 했고, 피어세션 심화과제 리뷰 시간을 위해 다시 심화과제를 복습하다보니 시간이 많이 나질 않았다. 결국 거의 쉬지 않고 공부는 했지만, 막상 진도로 나간 것은 얼마 되지 않는 상태.

회고 및 다짐

오늘은 본격적으로 팀을 모으기 위해 많이 무브를 보였다. 항상 사람 사귀는 것에 소극적이던 내가 이런 일을 한다는 게 조금 낯설다. 저번 주에 다짐했던 만큼 내가 열심히 하고 있는 것 같아서 그래도 내가 바라던 바를 지키고 있다는 것에 안도를 느끼고 있다. 잘하고 있냐, 하면 글쎄.. 많이 서툴다고 생각한다. 그래도 이 경험을 소중히 여기고자 한다.

그것과 별개로 이번 주에는 이고잉 깃헙 특강이 이틀이 예정되어 있기에 빠르게 진도를 뺄 필요가 있다. 아마 부캠을 시작한 이래로 강의 수로는 가장 널널한 주가 아닌가 싶지만 그렇다고 안심할 수는 없다. 이번 주가 이렇게 널널하게 주어진 것은 그만큼 이전의 공부들을 복습해둘 여유를 제공해주는 것이라고 생각한다. 
내일은 깃헙 특강 때문에 강의 진도는 빼지 못할 것으로 생각된다. 그 이후 시간에 본격적으로 공부를 시작해야 할 듯.