본문 바로가기
반응형

컴퓨터 사이언스65

[c++] 백준 #2206 벽 부수고 이동하기 1년 만의 백준 문제 풀기. 시작은 하게 골드4 정도의 만만한 BFS 문제로 골랐다. https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 일반적인 2차원 BFS 방식으로 다시 차근차근 구현하는데 한 시간 정도 걸렸고, 질문 검색에서 제안하는 디렉션을 읽고.. 최종 답 맞추기까지 1시간 45분 정도 걸렸다. 모든 벽을 다 한 번씩 부수면서 N*M번 BFS를 돌리면 계속 반복 계산하는 경우들 때문에 O(N^4)로 시간초과가 난.. 2022. 3. 2.
[c++] 백준 #1011 Fly me to the Alpha Centauri 난이도 순서대로 풀기 리스트에 있어서 풀게 된 문제이다. 어렵지 않았지만, 실버1보다는 조금 더 난이도가 있었겠다 싶은 그런 문제이다. 내가 좋아하는 스타일의 깔끔한 그리디 문제이다. www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 문제 설명을 짧게 해보자면, x 지점에서 y 지점까지 갈 때 공간이동 장치의 작동횟수를 계산하는 것이다. 공간 이동장치는 맨 처음에는 거리 1만큼을 움직일 수 있고, 작동시킬 때마다 이.. 2021. 2. 7.
[딥러닝 뉴비의 좌충우돌 일기] Jupyter notebook 딥하게 사용하기(feat. 아나콘다 가상환경 주피터에서 돌리기) 최근 연구실 선배의 연구를 도와드리게 되었다. nlp로 따지면, 선배가 만드신 새로운 단어를 이용해서 language modeling을 해서 generation을 하는 부분을 내가 맡게 되었다. 문제는.. 선배님이 모든 코딩을 jupyter notebook에서 돌리고 계셨기에 내가 사용하는 모든 코드를 jupyter notebook에 올려야 하는 상황이었다. 난감하긴 하지만, 따로따로 코드 돌려서 정신없이 하는 것 보다는 어쨋든 하나에서 다 돌리는 게 낫겠다는 생각이 들어서 과감하게(?) 잘 쓰지도 않았던 jupyter notebook를 좀 더 딥하게 사용해볼 기회를 얻었다. 오늘의 프로그레스는 다음과 같다. Progress - Run jupyter notebook with Anaconda virtual.. 2021. 1. 28.
[c++] 백준 #1201 NMK 재미있는 그리디 문제이다. 2년 전에 손도 못대던 문제를 풀었더니 기분이 좋다. www.acmicpc.net/problem/1201 문제 내용은 1부터 N까지의 수를 한 번씩 이용해서 가장 긴 증가하는 부분 수열의 길이가 M이고, 가장 긴 감소하는 부분 수열의 길이가 K인 수열을 출력한다는 것이다. 숫자를 배열하면서 규칙을 찾아보면, 숫자를 오름차순 해둔 상태에서 M개의 그룹을 만들고, 각각의 그룹을 내림차순하면, 가장 긴 증가하는 부분 수열의 길이를 M으로 만들 수 있다. 그러면, 각각의 그룹 내에 감소하는 부분 수열이 존재하기 때문에, 그룹에 들어가는 원소의 수 중 최댓값이 K가 되게 된다. 따라서, 이 문제는 M개의 그룹에 최대 K개의 원소를 배치하는 문제로 바뀌게 된다. (무언가 굉장히 많이 본 .. 2021. 1. 24.
반응형