본문 바로가기
728x90
반응형

Python15

[Python] 고대 문명 유적 탐사: 삼성SW역량테스트 2024 상반기 오전 1번 고대 문명 유적 탐사: 삼성SW역량테스트 2024 상반기 오전 1번Information자료구조: 2차원 배열, 큐(queue)알고리즘: BFS, 행렬 돌리기 테크닉, 정렬Setup(5, 5) 행렬을 `box`라고 이름 지었다. 전역변수로 선언함.(1) 탐사 진행: `(row, col)`을 기준으로 2차원 (3, 3) 배열을 90도 회전시킬 함수가 필요할 것 같다. 수험자 배려인지 행렬의 가장자리에서는 회전을 하지 않는다. 그러니가 (4번의 회전) x (9개의 회전축) = 36번 탐색하면 된다.(2) 유물 획득: `box[i][j]`마다 같은 숫자가 있는지 BFS로 탐색한다. 그중에서 조각이 3개 이상인 경우에만 유물을 획득한다. BFS 함수 마지막에 유물 조각의 개수도 담고 있어야 할 것 같다. 그리고 .. 2024. 10. 13.
[Python] 코드트리 투어: 삼성SW역량테스트 2024 상반기 오전 2번 코드트리 투어: 삼성SW역량테스트 2024 상반기 오전 2번 Information자료구조: 그래프, 힙(우선순위 큐)알고리즘: 다익스트라Query이 문제는 다양한 쿼리가 인풋으로 들어온다.그래프를 만드는 쿼리 빼고 4개의 쿼리에 대해 처리해야한다.(1) 랜드 건설: 가중치 그래프를 만드는 쿼리이다. 맨 처음 인풋으로만 들어온다.(2) 여행 상품 생성: 현재 출발지 기준으로 매출, 도착지 정보를 바탕으로 수익을 계산한다.(3) 여행 상품 취소: 특정 상품 id가 (2)로 생성되어있다면, 취소한다.(4) 최적 상품 판매: 수익이 가장 큰 상품을 판매하고, 그러한 상품이 없다면 -1을 출력(5) 상품 출발지 변경: 출발지를 새로운 출발지로 변경한다. (2)에서 생성된 정보 업데이트가 필요하다.Setup필요한 .. 2024. 9. 21.
[Python] 루돌프의 반란: 삼성SW역량테스트 2023 하반기 오후 1번 루돌프의 반란: 삼성SW역량테스트 2023 하반기, 오후 1번 해설/힌트 없이 채점 테스트 케이스만 보고 3시간 30분 걸렸다.진짜 시뮬레이션 구현이 복잡했다특히 산타끼리의 '상호작용'을 for-loop으로 구했다가 while로 고쳤다 오답이 나는 케이스1. 루돌프가 움직일 때산타를 찾아가는 우선순위가 제대로 되어있는가?산타와 충돌했을 때, 산타가 밀리는 방향이 바뀌진 않았는가? (바뀌면 안된다)2. 산타(들)가 움직일 때상우하좌 순서를 지켰는가?루돌프와 가까워지지 않으면 정지하는가?루돌프와 충돌 후 다른 산타들과 '상호작용'이 제대로 구현이 되었는가?루돌프와 충돌 후 제자리로 돌아올 때에도 상호작용을 하고 있는가? (하면 안된다)상호작용이 끝난 후, 올바르게 위치가 업데이트 되었는가? (덮어쓰기 순서 .. 2024. 9. 20.
[정수론] 디오판토스 방정식 (Diophantine equation) 디오판토스 방정식 ($ax + by = c$)정수를 계수로 갖는 방정식의 정수해를 구하는 문제를 디오판토스 방정식 (또는 부정방정식)이라 한다.요즘에도 그런지 모르겠는데, 필자가 고등학생일때 수학의 정석에 간단한 경우(상황이 특수한 경우)에 소개되어있다.정수론에서 보다 일반적인 방법으로 이 방정식을 푸는 방법을 소개한다.$a, b, c \in \mathbb{Z}$이고 (적어도 하나는 $0$이 아니다.) $d=\gcd(a, b)$라 하자. 이 때,(1) 방정식 $ax + by = c$의 해가 존재하기 위한 필요충분조건은 $d \mid c$ 이다.(2) $x_0, y_0$가 $ax + by = c$의 특수해(particular solution)일 때, 일반해는 다음과 같다.\[ x = x_0 + \bigg(.. 2024. 8. 19.
[conda] [PyG] torch geometric 설치 오류 (오래된 cuda version) Conda에서 pyg 설치하기 (CUDA 버전 맞추기)연구실 서버를 고쳐야 하는데 실험을 중단할 순 없으니 학과 서버를 대여하기로 했다.그래서 개발환경을 다시 설정해야하는데...연구실 GPU의 CUDA version이 달라서 완전히 똑같은 세팅을 할 순 없었다. Update: 2024.11.06 (CUDA 10.1)아니 이번에는 cuda 버전이 10.1이다더 낮은 버전이다....... 미치겠다하루종일 또 시간 걸려서 겨우 설치했다cuda 10.1이 되는 pytorch를 1.8.1로 설치하고 나머지는 아래 참고[3] 덕분에 해결했다(pyg_env) $ python -c "import torch; print(torch.__version__)"1.8.1+cu101(pyg_env) $ python -c "imp.. 2024. 7. 22.
[Python] 퍼즐 조각 채우기 퍼즉 조각 채우기문제 출처: 프로그래머스난이도: level 3input size: $n \le 50$ (정사각 격자)(주관) 자료구조: 그래프(주관) 알고리즘: 완전탐색, BFS(주관) 시간복잡도: $O(n^2) = O(V+E)$ ($V=n^2, E=2n(n-1)$) 2개의 정사각 배열이 주어진다. 1은 블록 한 조각을, 0은 빈 공간을 나타낸다.game_board의 빈 공간을 table에 있는 블록을 이용하여 채운다.하나의 공간을 여러 블록으로 채우거나, 작은 블록으로 큰 빈공간을 채우고 나서도 빈 공간이 있으면 안된다.이때 채워지는 블록의 면적을 리턴하면 된다.STEP 1. 서로 같은 블록단순히 면적을 구하는 것은 DFS/BFS를 이용하여 구할 수 있다.그리고 블록은 좌표의 리스트로 나타낼 수 있다... 2024. 7. 3.
728x90
반응형