전체 글(408)
-
백준 로봇 청소기 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 왼쪽으로 회전 또는 후진하기 위해 현재 방향을 key, 회전 또는 후진을 위한 이동 방향을 value로 갖는 딕셔너리를 정의한다. move_dict는 각 방향을 key로, 그 방향으로 이동하기 위한 (dx, dy)를 value로 갖는다. 이후 문제의 조건에 맞게 다음을 반복한다. 왼쪽 방향이 벽도 아니고 아직 청소하지 않은 곳이면 왼쪽으로 회전하고, 그 칸으로 이동해 그 칸을 청소한다(2a). ..
2021.10.11 -
드디어 이해한 Transformer Positional Encoding/Embedding
이해하려고 노력할 때마다 항상 sin, cos의 폭격에 정신 못 차렸다. 하지만 귀여운 커피 캐릭터와 함께 드디어 이해가 좀 간다...... https://www.youtube.com/watch?v=1biZfFLPRSY&feature=youtu.be 일단 트랜스포머에 positional encoding이 필요한 이유! 트랜스포머는 RNN, LSTM과 달리 recurrent하지 않음. input의 모든 토큰이 parallel하게 처리됨. 따라서 어순 정보가 추가적으로 필요함. 이 어순 정보를 positional encoding에 담아 전달할 건데, 이 positional encoding은 각 토큰의 word embedding과 더해짐. 더해져서 똑같은 단어라도 첫 번째 위치에 왔을 때랑, 다섯 번째 위치에..
2021.10.07 -
자연어처리와 언어학 지식
면접에서 CS가 아닌 언어학 전공자로서 무엇이 강점이냐고 물었을 때, 뭔가 답을 하긴 했지만 솔직히 나조차도 설득이 안 됐다.. 근데 이 강연을 들으니까 진짜 언어학이 중요한 것 같네!! https://www.youtube.com/watch?v=6PoA05AUllg&feature=youtu.be 1. 형태소 분석기 개선 딥러닝이 해결할 수 있는 과제를 크게 3가지로 보면 1) 분류 2) 회귀 3) 생성 및 변형이다. 기존의 형태소 분석기 학습 방법은 3) 생성 및 변형 방법을 사용했다. 예를 들어, input이 '흘러'로 주어지면 그에 맞는 output으로 '흐르+어'를 생성해내는 방식이다. 그러나 이렇게 end-to-end 방식으로 학습했을 때 성능에 한계가 있었다. 이를 개선하여 형태소 분석기 구축 ..
2021.10.07 -
백준 토마토 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 요즘 비슷한 문제를 엄청 많이 풀었다. 다 거기서 거기네.. bfs... 비슷한 bfs 문제들 경쟁적 전염 연구소 감시 피하기 인구 이동 make_ripe 함수로 하루동안 토마토의 변화를 계산한다. 우선 익은 토마토가 있는 좌표들인 tomato를 큐로 만들고, 이들을 하나씩 pop하면서 그 토마토의 인접한 부분 중에 0인 곳이 있으면 1로 바꿔준다. 그리고 이제 익게 되었으니 다음..
2021.10.04 -
백준 설탕 배달 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 최대한 적은 봉지를 가져가려고 하므로 5kg 봉지를 최대한 활용해야 한다. 우선 q5에 5kg 봉지의 최대 개수를 저장한다. q5를 0까지 하나씩 줄여가면서 5kg 봉지를 해당 개수만큼 들고 갔을 때, 남은 무게가 3의 배수인지 확인한다. 3의 배수라면 5kg 봉지 개수 + 남은 무게를 3으로 나눈 몫이 정답이 된다. 최대한 5kg 봉지를 많이 가져가야 하므로 조건이 충족되면 바로 break로 for loo..
2021.10.04 -
백준 별 찍기 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 로그 함수 때문에 애 먹었다 왜 그러는거야? 왜 log_3(81)은 4.0이고 log_3(243)은 4.99 라서 날 힘들게 만든거야! int가 아니라 round를 써야 했다 재귀함수를 사용했다. [이전 모양 사각형] [이전 모양 사각형] [이전 모양 사각형] [이전 모양 사각형] [ N/3 빈 정사각형] [이전 모양 사각형] [이전 모양 사각형] [이전 모양 사각형] ..
2021.09.29