본문 바로가기

전체 글

(215)
2468. 안전 영역 탐색만 하면 되니까 dfs bfs 모두 가능하다. 높이 보다 높으면 탐색 시작 점이 될 수 있고 그 시작점에서 그래프 탐색을 시작한다. JavaScript bfs const fs = require("fs") const input = fs.readFileSync("./dev/stdin").toString().trim().split("\n") const n = +input[0] const board = input.slice(1).map((e) => e.split(" ").map((e) => +e)) const max = Math.max(...board.flat()) let dx = [0, 0, 1, -1], dy = [1, -1, 0, 0] function bfs(x, y, h, visited) { cons..
1826. 연료 채우기 현재 연료로 갈 수 있는 거리에 포함되는 아이들을 heap에 넣는다. 그리고 연료가 가장 큰 아이를 택해서 p에 더해주고 cnt를 증가시킨다 -> 방문 import heapq n = int(input()) oil = [] for _ in range(n): oil.append(tuple(map(int, input().split()))) l, p = map(int, input().split()) oil.sort() hq,i,cnt = [],0,0 while p < l: while i < n and oil[i][0]
14500. 테트로미노 최근 코딩테스트에서 이 테트로미노와 비슷한 문제를 접했다. 백준에서 문제를 찾아보니 비슷한 문제들이 몇개 있어서 풀어보자! 탐색을 한다고 했을 때 처음 블록을 깊이 1 두번째 블록을 깊이 2라고해보자. 깊이 2에서는 탐색 방법 살짝 다르다. ㅗ 모양 같은 경우는 탐색하려면 아래와 같이 해야한다. 그냥 무작정 전진해버리면 ㅗ 모양은 탐색할 수 없다. N,M = map(int,input().split()) board = [list(map(int,input().split())) for _ in range(N)] ans = 0 dx,dy = [0,1,0,-1],[1,0,-1,0] visited = [[0]*M for _ in range(N)] max_value = max(map(max,board)) def df..
2022 Dev-Matching: 웹 프론트엔드 개발자(상반기) 후기 바닐라 자바스크립트로 검색을 구현하는 문제가 나왔는데 옛날 Dev-Matching 문제들과 상당히 비슷했다. 나는 몇일전에 고양이문제랑 쇼핑몰 문제를 공부하고 시험을 봤는데 이게 오픈북이라 내가 작성한 코드를 복사해서 붙여넣기 할 수 있어서 좋았다. 3시간 동안 테스트를 보았는데 집중해서 요구사항을 빠르게 구현하는게 재밌었다. 그리고 집에서 보는거라 긴장감 같은건 없었다. 심지어 잠옷입고 시험을 봤다. 일주일인가? 지나고 3월 21일에 결과가 나왔다. 솔직히 까먹고 있었는데 메일보다가 알았다. 이번 문제에서 꼭 필요했던 개념들을 적어봤다. localStorage, sessingStorage debouncing fetch api에 대한 이해 결론은 데브매칭에 통과하였다. 붙어서 기분은 좋다. 이번 시험은 ..
10159. 저울 문제에서 그래프를 한쪽 방향으로 그리게끔 유도. 모든 점에서 모든 점을 방문해야 비교결과를 알 수없는 물건 도출 가능 -> 플로이드 와샬을 유추 가능 자기 자신과 비교 안함 -> 마지막에 -1 const fs = require("fs") let input = fs.readFileSync("./dev/stdin").toString().trim().split("\n") let [n, m] = input const graph = Array.from({ length: +n + 1 }, () => Array.from({ length: +n + 1 }, () => 0) ) const edges = input.slice(2).map((x) => x.split(" ").map((x) => +x)) for ([a, b]..
2638. 치즈 치즈가 먹고싶다. bfs문제이다. 그래프 탐색문제는 뭔가 코테에서 만나면 아직 어렵게 느껴진다. 다 연습이 부족해서겠지. 이 문제는 바깥 공간과 접촉한 치즈만 녹는다. 이게 힌트이다. 그냥 무지성 bfs (0,0)에서 해주고, 그에 따라서 외부와 접촉한 치즈 (1 ) 을 1씩 증가시킨다. (접촉할 때마다) 즉 3이상이면 2번이상 접촉한거고 다음 반복에서 삭제하면 된다. import sys from collections import deque input = sys.stdin.readline n,m=map(int,input().split()) board = [list(map(int,input().split())) for _ in range(n)] dx,dy=[0,0,1,-1],[1,-1,0,0] ans = ..
13164. 행복 유치원 인접한 아이끼리만 같은 조가 될 수 있다는 조건을 꼭 읽어야한다. n명을 k개의 조로 나눌때 그 구간의 길이들 중에서 길이 간격이 가장 긴 k-1개를 제거한다. k-1개를 제거하면 k조가 나오니까! import sys input = sys.stdin.readline n,k = map(int,input().split()) heights = list(map(int,input().split())) costs = [] for i in range(n-1): costs.append(heights[i+1]-heights[i]) costs.sort() print(sum(costs[:n-k])) 아래는 javascript 풀이입니다. const inputs = require("fs").readFileSync("./dev..
9576. 책 나눠주기 오늘 코테를 봤는데 짧은 시간안에 문제를 더많이 풀려면 구현실력을 더 길러야 겠다는 생각을 했다..!! 째튼.. 이 책나눠주기 문제는 그리디 문제이다. 문제에서 주어진 a와 b의 범위중 b를 기준으로 정렬해야한다. -> 끝에가 가장 작은거 부터. 왜냐? 어짜피 a