본문 바로가기

Algorithm/이코테

(5)
[이코테] 게임 개발 문제 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 X 1 크기의 정사각형으로 이뤄진 N X M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 매뉴얼은 이러하다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 횐전한 다음 왼쪽..
[이코테] 숫자 카드 게임 https://github.com/ndb796/python-for-coding-test/blob/master/3/4.py GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소스코드 저장소입니다. - GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소 github.com 1. 해결방법 그리디 문제이다. 사실 해결방법 없이 그냥 풀면 된다. 2. 정답코드 import sys input = sys.stdin.readline N, M = map(int..
[이코테] 큰 수의 법칙 https://github.com/ndb796/python-for-coding-test/blob/master/3/2.py GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소스코드 저장소입니다. - GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소 github.com 1. 해결방법 그리디 문제이다. 본인은 반복문으로 풀었지만 좀 더 효율적인 방법은 가장 큰 수와 두 번째로 큰 수밖에 사용하지 않는다는 부분을 파악해야한다. 가장 큰 수를 K번 ..
[이코테] 미로 탈출 (BFS) / [BOJ] 2178. 미로 탈출 1. 해결 방법 """ 1. 아이디어 - 2차원 배열을 사용 - BFS를 돌면서 한번 움직일 때마다 +1, 입구에서 출구까지의 거리를 계산 후 최소 이동 거리를 갱신 - 출잘점 (1, 1)에서 목적지 (n, m)까지 이동하는데 해당 노드에 처음 도달한 경우(1일 때) 모든 방향의 노드 값을 +1 해준다. 2. 시간복잡도 - O(V + E) - V : m X n = 200 X 200 = 40000 - E : 4V = 4 * 40000 3. 자료구조 - 이차원 배열 : int[][] - 방문 기록 : bool[][] - BFS(Queue) """ 노드를 이동할 때마다 노드의 값에 +1을 해주면 된다. 단, 상하좌우를 판단해서 이동할 수 있는 경로가 다수일 경우에는 모든 방향에 +1 처리를 해준다. 그러면 결..
[이코테] 음료수 얼려 먹기 (BFS) 1. 해결 방법 """ 1. 아이디어 - 2중 for문 => int[][] - BFS를 돌면서 +1, 생성되는 아이스크림의 개수를 구함 2. 시간복잡도 - O(V + E) - V : m X n = 1000 X 1000 = 1000000 - E : 4V = 4 * 1000000 3. 자료구조 - 얼음 틀 2차원 배열 : int[][] - 방문 : bool[][] - BFS(Queue) """ 그래프 형태이기 때문에 2차원 배열을 사용해야 한다. 마찬가지로 방문 기록을 남겨야 하기 때문에 bool 형태의 2차원 배열을 추가적으로 구현하였다. 하나의 노드(vertex)를 방문하면 그 노드와 연관되어있는 자식 노드를 추가적으로 방문하여 큐에 넣는다. 이런식으로 하나의 얼음 틀을 만들때 까지 방문하다가 연결이 끊..