전체 글 139

[이코테] DFS/ BFS 실전문제 4 미로 탈출

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = int(1e9) def bfs(graph,x,y): dx = [1,0,-1,0] dy = [0,1,0,-1] index = 2 nx = 0 ny = 0 queue = deque() queue.append((x,y)) while queue: flag = 0 a,b = queue.popleft() # 큐에서 원소 2개를 빼오고 graph[a][b] = -1 # 방문 처리해준다 for i in range(4): nx = a + dx[i] # x와 y의 방향 점검 ny = b + dy[i] if nx < 0..

[이코테] DFS/BFS 실전문제 3 음료수 얼려 먹기

전형적인 DFS 문제였다 여기로 갔다가 어떻게 돌아오지? 라는 생각이 들면 무조건 재귀를 떠올릴 것 너무 시간을 많이 까먹는게 아니라면 시간복잡도에 걸릴 일도 없고 효율적으로 탐색할 수 있다 import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = int(1e9) def dfs(graph,row,col,N,M): if row = N or col = M: return False if graph[row][col] == 0: graph[row][col] = 1 dfs(graph,row+1,col,N,M) dfs(grap..

[이코테 Python] 구현 실전문제 3 게임 개발

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = int(1e9) N,M = map(int,input().split()) x,y,direction = map(int,input().split()) d =[[0] * M for _ in range(N)] array = [] d[x][y] = 1 for i in range(N): array.append(list(map(int,input().split()))) dx = [-1,0,1,0] dy = [0,1,0,-1] def turn_left(): global direction direction -=1 if ..

Chapter 4.구현 / 실전 문제 왕실의 나이트

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = int(1e9) command = input() index = 1 idx = 1 array = ['a','b','c','d','e','f','g','h'] for elem in array: if array == command[0]: index = idx idx+=1 x = idx y = int(command[1]) count = 0 move_types = [(2,1),(2,-1),(-2,-1),(-2,1),(1,2),(-1,2),(1,-2),(-1,-2)] for move in move_types: ..

[프로그래머스] 파이썬 LV.1 달리기 경주 / 시간 초과?

https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등..

스프링 용어 정리

수시로 정리해둘 예정입니다 ! 드디어 제 공부를 좀 할 수 있겠네요 파이팅입니다 :) @GetMapping(ex) -> localhost:8080에서 ex라는 요청이 들어오면 아래에 있는 ex라는 함수를 실행시켜주는 역할이라고 보면 된다. model 객체의 역할 - 컨트롤러의 메소드에서 model이라는 객체를 파라미터로 받고 정보를 받아 전달해주는 역할이다 클라이언트와 서버 사이의 통신에서 필요한 데이터의 요청 본문 -> requestbody / 응답하는 본문이 responsebody이다 responsebody는 http의 body에 문자 내용 자체를 직접 반환해주는 역할을 함. @RequestParam() - HTTP 요청 파라미터 값을 편리하게 받을 수 있는 기능

[백준] 최단거리 9370 파이썬 풀이

https://www.acmicpc.net/problem/9370 9370번: 미확인 도착지 (취익)B100 요원, 요란한 옷차림을 한 서커스 예술가 한 쌍이 한 도시의 거리들을 이동하고 있다. 너의 임무는 그들이 어디로 가고 있는지 알아내는 것이다. 우리가 알아낸 것은 그들이 s지점에서 www.acmicpc.net 문제 (취익)B100 요원, 요란한 옷차림을 한 서커스 예술가 한 쌍이 한 도시의 거리들을 이동하고 있다. 너의 임무는 그들이 어디로 가고 있는지 알아내는 것이다. 우리가 알아낸 것은 그들이 s지점에서 출발했다는 것, 그리고 목적지 후보들 중 하나가 그들의 목적지라는 것이다. 그들이 급한 상황이기 때문에 목적지까지 우회하지 않고 최단거리로 갈 것이라 확신한다. 이상이다. (취익) 어휴! (요..

[백준] 최단거리 13549 숨바꼭질 3 파이썬 풀이

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈..

[백준] 최단경로 1504 파이썬 풀이

https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 문제 방향성이 없는 그래프가 주어진다. 세준이는 1번 정점에서 N번 정점으로 최단 거리로 이동하려고 한다. 또한 세준이는 두 가지 조건을 만족하면서 이동하는 특정한 최단 경로를 구하고 싶은데, 그것은 바로 임의로 주어진 두 정점은 반드시 통과해야 한다는 것이다. 세준이는 한번 이동했던 정점은 물론, 한번 이동했던 간선도 다시 이동할 수 있다. 하지만 반..

[이코테] 최단경로 문제 3 [전보] 파이썬 풀이

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(1000000) import heapq INF = int(1e9) N,M,C = map(int,sys.stdin.readline().split()) graph = [[] for _ in range(N+1)] distance = [INF] * (N+1) for i in range(M): x,y,z = map(int,sys.stdin.readline().split()) graph[x].append((y,z)) q = [] def dijkstra(start): distance[start] = 0 heapq.heappush(q,(0,start)) while q..