일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- k8s
- 타입스크립트
- es6
- BFS
- TypeScript
- 컴퓨터공학
- 프론트엔드
- 이더리움
- AWS
- 파이썬
- 솔리디티
- next.js
- 백엔드
- kubernetes
- JavaScript
- react
- 백준
- HTML
- 이슈
- 리액트
- 가상화
- 알고리즘
- 웹
- 쿠버네티스
- 자바스크립트
- docker
- 클라우드
- 블록체인
- CSS
- VUE
- Today
- Total
목록📖 💯 알고리즘/백준 온라인 저지 (28)
즐겁게, 코드
[백준 온라인 저지 링크] 1895번: 필터 숫자 9개가 오름차순이나 내림차순으로 정렬되어 있을 때, 중앙값은 다섯 번째 숫자이다. 예를 들어, 1, 3, 4, 1, 2, 6, 8, 4, 10의 중앙값은 4이다. (1 ≤ 1 ≤ 2 ≤ 3 ≤ 4 ≤ 4 ≤ 6 ≤ 8 ≤ 10) 이미지 I는 www.acmicpc.net 2차원 배열을 순회하며 3 * 3 크기의 부분배열을 구한 뒤, 해당 부분배열의 중간값들로 이루어진 배열을 생성합니다. 그리고 중간값들의 배열을 순회하면서 T보다 크거나 같은 값의 개수만 세주면 됩니다! [정답 코드 - Python] R, C = map(int, input().split()) image = [] filtered = [] cnt = 0 def findMid(R, C): glob..
[백준 온라인 저지 링크] 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 애매한 점을 하나 정리해드리면, N번째 지점은 밟자마자(발판이 움직이든 로봇이 움직이든) 내려간다고 생각하시면 됩니다. 또, 로봇이 전진하기 위해 현재 칸에 로봇이 있어야 하고 다음 칸에는 로봇이 있어서는 안되는 걸 잊으면 안됩니다! (이걸 처리하지 않으면 세 번째, 네 번째 케이스에서 걸립니다 ㅠㅠㅠ) if belt[N - i] > 0 and robot[N - i - 1] == True and robot[N - i..
[백준 온라인 저지 링크] 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 2178번 미로 탐색과 비슷하게 BFS 탐색을 최소화하는 경로를 찾아야 했습니다. 다만 가장 머리아팠던게 바로 세 번째 케이스로, 출발지점이 둘 이상일 경우에는 아래처럼 토마토를 발견할 때 탐색을 시작하도록 하면 절대 최솟값을 찾을 수 없습니다. for row in range(N): for col in range(M): if tomatoes[row][col] == 1 and visited[row][col] == Fals..
[백준 온라인 저지 링크] 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 시작하기 전, 후위 표기식이란 피연산자 뒤에 연산자가 오는 방식을 의미합니다. 다음은 테스트케이스로 주어진 예시의 계산 순서입니다. 대충 후위 표기식에 대해서는 이해가 되셨다면, 눈썰미가 빠른 분들은 한가지 눈치채신게 있으실 겁니다. 이 문제는 스택에 수를 하나씩 넣으면서(push) 연산자를 만나면 이전 두 수를 빼고(pop), 연산을 수행한 값을 다시 스택에 넣으면 됩니다. 그럼 남은 문제는 후위 표기식 문자열의 알파벳을 ..
[백준 온라인 저지 링크] 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 다른 분들 코드를 보니 한번의 탐색만으로 답을 구하는 분들이 많았는데, 저는 두 번의 탐색을 활용하는 코드를 작성했습니다. 테스트케이스로 주어진 배열과 함께 빗물의 높이가 3인 경우를 예로 들겠습니다. 첫 번째 BFS 탐색에서는 원본 배열을 탐색해 안전 여부를 판단하는 배열을 만들어냅니다. 두 번째 BFS 탐색에서는 이렇게 만들어진 안전 영역의 수를 세 줍니다. 다만 한 가지 조심할 점은 "비가 오지 않는 경우 (= 높이가 0일때)" 가 마지..
[백준 온라인 저지 링크] 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net BOJ 2667번: 단지번호붙이기 와 유사한 문제다. 입력받을 때만 조심하면 크게 꼬인 트릭은 없는 문제! [정답 코드 - Python] from collections import deque N, M = map(int, input().split()) picture = [] visited = [[False] * M for _ in range(N)] dy = [1, 0, -1, 0] dx = [0, 1, 0, -1] picture_cnt = 0..
[백준 온라인 저지 링크] 17206번: 준석이의 수학 숙제 10 이하의 3 또는 7의 배수는 3, 6, 7, 9가 있다. 21 이하의 3 또는 7의 배수는 3, 6, 7, 9, 12, 14, 15, 18, 21이 있다. www.acmicpc.net 주어진 N 이하의 3 또는 7의 배수의 합을 구하는 문제입니다. [이렇게 풀면 안돼요] T = int(input()) a = list(map(int, input().split())) for elem in a: ans = 0 for i in range(elem + 1): if i % 3 == 0 or i % 7 == 0: ans += i print(ans) 이렇게 코드를 짜면 (최대 10만개의 케이스) * (for문 루프 80000개) 의 제약에 걸리게 되어 ..