
14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 다른 분들이 훨씬 더 간단하게 푼 것 같습니다. 양쪽 벽 중 짧은 쪽을 선택하여 세로로 빗물 양을 세는 방식이더라고요. 저는 가로로 세는 방식으로 풀었는데, 코드가 좀 복잡하지만 여기에 남깁니다. POINT 블록 좌표를 따로 저장하여 왼쪽 아래 블록부터 오른쪽 위 블록 순서대로 검사한다. 각 블록에서 출발하여 오른쪽 방향으로 검사하며 빗물 양을 카운트한다. 검사하다가 다른 블록을 만나면, 이제까지 센 빗물 양(count)을 answer 변수에 저..

18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net POINT 조합 Combinations 빈 좌표 배열에서 3개를 뽑는 조합을 사용하여, 장애물을 세운다. DFS 장애물을 세운 후, 선생님을 상하좌우로 한 칸씩 계속 이동시킨다. 장애물을 만나거나 벽에 다다르면, 다른 방향 감시하기 학생을 만나면, 감시를 종료하고 결과("NO") 출력하기 문제풀이 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().s..

14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net POINT DFS 주어진 연산자를 순열 알고리즘을 사용해서 풀었으나, 중복된 연산이 많고 비효율적이라 메모리 초과가 발생한다. → 한 연산에서 시작하여 나머지 연산을 수행하는 모든 경우를 구하기 위해 DFS를 사용한다. -0 JS에서는 -0이 출력이 된다. 백준에서 -0은 0이 아니므로 오답이다. 결과가 -0이면 0으로 바꿔주자. 문제풀이 const fs = require("fs"); const input =..

로그인 www.acmicpc.net POINT dfs (깊이 우선 탐색) 바이러스가 있는 곳(2)을 기준으로, 주변에 바이러스를 퍼뜨린다. → 바이러스 주변 칸의 값이 0이면 2로 바꾸고 주변을 계속 탐색한다. (방문 처리) 풀이 1. 새로운 벽을 3개 세운다. 2. 바이러스를 퍼뜨린다. 3. 안전 지역의 최댓값을 계산한다. 4. 모든 곳에 벽을 세워 볼 때까지 1 ~ 3을 반복한다. from itertools import combinations n, m = map(int, input().split()) graph = [[0] * m for _ in range(n)] new_graph =[[0] * m for _ in range(n)] # 복사한 그래프 blanks = [] # 빈칸 위치를 넣은 리스트 ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr POINT 삭제할 수 있는 조건은 복잡하지만 설치할 수 있는 조건은 비교적 쉽게 구현할 수 있습니다. 그러니 우선 삭제/설치한 다음에 매번 가능한 구조물인지 확인하고, 불가능하면 원상복구하도록 풀어봅시다. 기둥을 설치할 수 있는 조건 기둥의 좌표를 (x, y)라고 하면 세 가지 조건 중 하나를 만족하면 됩니다. 보를 설치할 수 있는 조건 보의 좌표를 (x, y)라고 하면 두 가지 조건 중 하나를 만족하면 됩니다. 풀이 # 설치물이 조건을 만족하는지 확인한다 def is_possible(result): for ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 효율성 테스트에 부분 점수가 있는 문제입니다. 라고 나와있으니 문제 그대로 풀면 분명 시간 초과가 나올겁니다. POINT 시간이 적게 걸리는 음식부터 공략한다! k를 초과하지 않는 선에서, 먹는 시간이 적은 음식부터 먹어치운다. → 시간이 적은 음식부터 나열하기 위해 우선순위 큐를 사용해보자. 한 음식을 다 먹는 시간이 k를 초과한다면, 원래 풀이대로 먹고 남은 시간만큼 번호를 센 후 반환한다. 시간은 작은 순으로 2번 → 3번 → 1번을 먹는다고 하면, 해당 음식을 다 먹는데 걸리는 시간은 위와 같습니다..
- Total
- Today
- Yesterday
- 프로그래머스
- 코딩테스트
- 코테
- node.js
- DP
- Spotify
- nodeJS
- dfs
- javascript
- 코어자바스크립트
- React.js
- 이벤트루프
- Python3
- p5js
- 비동기
- rn
- React
- 알고리즘
- 백트래킹
- flutter
- python
- 파이썬
- backtracking
- 백준
- 다이나믹프로그래밍
- Unsplash
- React-native
- 문제풀이
- fetch
- 코드분석
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |