본문 바로가기

구현10

[BOJ] 2174. 로봇 시뮬레이션(Python) / Simulation 2174번: 로봇 시뮬레이션 첫째 줄에 두 정수 A, B가 주어진다. 다음 줄에는 두 정수 N, M이 주어진다. 다음 N개의 줄에는 각 로봇의 초기 위치(x, y좌표 순) 및 방향이 주어진다. 다음 M개의 줄에는 각 명령이 명령을 내리는 순 www.acmicpc.net 문제명 그대로 주어진 대로 로봇을 움직이는 Simulation 문제이다. # 1시간 59분 소요. 한 번에 pass. 시간, 메모리 1위를 달성 사용 알고리즘 : 구현 맵은 사용하지 않고, 로봇 정보와 위치 정보를 모두 파이썬 Dictionary를 사용했다. 문제 풀기 전에 미리 해둔 것 상하좌우 delta 좌표로 구현(dr, dc) 상하좌우 => NSWE => 0, 1, 2, 3으로 딕셔너리에 방향 정보 저장(dirInfo) "L" 또는.. 2021. 4. 1.
[BOJ] 20165. 인내의 도미노 장인 호석(Python) / Simulation 20165번: 인내의 도미노 장인 호석 사람을 화나게 하는 법은 다양하다. 그 중에서도 악질은 바로 열심히 세워놓은 도미노를 넘어뜨리는 것이다. 이번에 출시된 보드 게임인 "너 죽고 나 살자 게임"은 바로 이 점을 이용해서 2명이 www.acmicpc.net # 문제 이해 못 하고 1시간 30분동안 시간 날리고, 문제 이해하고 다 지우고 새로 다시 풀어서 28분만에 pass 사용 알고리즘 : Simulation + Recursive Function 공격, 수비 전에 미리 해둔 것 공격 시작 좌표, 수비 시작 좌표 Input 받으면서 다루기 좋게 indexing 해준다. 수비할 때, 원래 맵에 있는 도미노 정보로 복원해줘야 하기 때문에 raw배열에 board맵을 복사해놓는다. 동서남북 E, W, S, N에.. 2021. 3. 30.
[BOJ] 8911. 거북이(Python) / Simulation www.acmicpc.net/problem/8911 8911번: 거북이 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져 www.acmicpc.net 실버2 문제라 그리 어렵지 않은 시뮬레이션 문제였다. 맵을 그릴 필요 없이 (0, 0) 위치에서 시작하여 문제에 주어진 조건 그대로 구현한다. L과 R의 경우는 방향만 바꿔준다. 이 때, 현재 방향을 각 경우별로 만들어놓은 방향 전환 리스트(dirL, dirR)를 참조하여 현 방향에 해당하는 인덱스로 바꾼다. F와 B의 경우는 현재 방향으로 한 칸 나아간다. 이 때, 이동한 위치를 min_r/c, max_r/c 최솟값과 .. 2021. 3. 9.
[BOJ] 2456. 나는 학급회장이다(Python) www.acmicpc.net/problem/2456 2456번: 나는 학급회장이다 첫째 줄에는 반의 학생들의 수 N (3 ≤ N ≤ 1,000)이 주어진다. 다음 N개의 각 줄에는 각 학생이 제출한 회장후보 3명에 대한 선호 점수가 주어지는 데, 첫 번째 점수는 후보 1번에 대한 점수이고 두 www.acmicpc.net 브론즈 1 문제이다. 단순 하드코딩으로 이차원 배열에 3명의 후보별로 [총점, 3점, 2점] 리스트로 구성해 정렬하는 방식으로 풀다가 막혀서 구글링하다가 3점, 2점 점수 합 제곱을 해줘서(가중치 처리) 크기 비교를 하는 풀이법을 찾았다. (이런 아이디어 나도 내고 싶다..) 아이디어를 참고해 풀었다. 파이썬 코드는 다음과 같다. import sys input = sys.stdin.rea.. 2021. 2. 24.