Loading...

[백준] 19236번 청소년 상어 (java, 시뮬레이션)

www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 물고기 이동은 구현에서 상어이동은 dfs로 완탐을 돌려줘야되는 문제여서 복잡했다 ㅠㅠ 지쳐.. 중간에 상어가 멈춰서 ?? 했는데 나는 상어이동을 bfs로 구현했고 물고기가 있는 칸으로만 이동하는 것으로 짰더니 빈 칸으로는 이동을 못해 오도가도 못한 상태로 끝나버렸다. 추후 빈 칸도 갈 수 있도록 했더니 통과되었다. 칸이 4x4로 정해져있기 때문에 무조건 3번 이동이 가능한지 for문으로 확인하..

[백준] 20058번 마법사 상어와 파이어 스톰 (java, 시뮬레이션)

www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net 다른 것은 일반 bfs문제와 크게 다를 것이 없는데 배열 회전하는 부분이 어려웠다 ㅠㅠ 예전에 한 번 해봐서 괜찮겠지 했는데 수학 계산을 못하겠어서ㅋㅋㅋㅋㅋ 길이가 4일때 첫 열의 세로줄 2 1 5 7 을 첫 행의 가로줄로 만들기 위해서 2 1 5 7 가로줄의 열 번호와 행번호를 sx, sy라는 변수를 따로 만들어서 증가시키고 첫 열의 세로줄은 for문의 변수를 돌리는 방식으로 해줬다. 내일..

[백준] 16234번 인구 이동 (bfs, 시뮬레이션, java)

www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net arraylist는 검사 시작점과 연합국인 곳들의 좌표가 들어가는 리스트이다. 1. 방문 안된 곳에서 상하좌우를 검사하면서 경계를 열 수있는 곳을 검사한다. 연합국이 되면 sum+=연합국 인구수, cnt(연합국에 들어가는 개수)+1해주고 arraylist에 새로운 연합국의 좌표를 넣어준다. 2. 시작한 곳에서 bfs로 최대한 검사할 수 있는 곳까지 다 검사가 끝나면 arraylist 좌표에 해당하..

[백준] 20056번 마법사 상어와 파이어볼 (java, 구현, bfs)

www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net bfs로 뭐든 되는구나 싶었다 1번이랑 n번이 연결된다는게 뭔가 싶었는데 범위를 넘어가면 그만큼 빼서 다시 안의 범위로 들어오게 해야된다 그 다음에는 파이어 볼 개수만큼 큐에 집어넣고 그 길이만큼만 bfs로 돌린 후 다시 새로 만든 파이어볼을 큐에 넣고 k번 돌리면 된다. import java.util.ArrayList; import java.util.LinkedList;..

[swexpert] 2105. 디저트 카페 (java, 시뮬레이션, 모든 탐색)

좀 되는 대로 푼 시뮬 문제라서 다른 방법도 공부해야겠다 import java.util.Scanner; public class Solution { static int t,n; static int[][] map; static int [] xpos= {1,-1,-1,1}; static int [] ypos= {1,1,-1,-1}; static int ans; static boolean vis[]; static boolean vis_dir[]; static int sy,sx; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.nextInt(); for (int tc = 1; tc

[백준] 15685번 드래곤커브 (python, 시뮬레이션)

www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커� www.acmicpc.net from collections import deque from collections import defaultdict dict=defaultdict(int) n=int(input()) dy,dx=[0,-1,0,1],[1,0,-1,0] # 북서남동 0 1 2 3 => 서남동북 1 2 3 0 def dragon(x,y,d,g): direct=[d] dict[(x, y)] = 1 # 시작..

[백준] 14505번 연구소 (bfs, 시뮬레이션, 파이썬)

www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net from collections import deque import math from itertools import combinations import copy n,m=map(int,input().split()) a,blank,virus=[],[],[] dy,dx=[1,-1,0,0],[0,0,1,-1] for y in range(n): tmp=list(map(int,input().split())) a.append(tmp) ..

[백준] 15686번 치킨배달 (시뮬, bfs, 파이썬, java)

www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. python 풀이 from collections import deque import math from itertools import combinations chicken,house=[],[] n,m=map(int,input().split()) for y in range(n): temp=list(map(int,input().split())) for x in range(len(temp))..

[백준] 14503번 로봇 청소기 (bfs, 시뮬레이션, python)

www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 방향 회전에 후진할 경우 이동방향, 회전할 경우 이동방향을 계산해서 이동시킨다 # 북동남서 0 1 2 3 -> 후진: 2 3 0 1 # 북동남서 0 1 2 3 -> 회전: 3 0 1 2 from _collections import deque n,m=map(int,input().split()) vis=[[0]*m for _ in range(n)] r,c,d=map(int,input().split()) a=[li..