본문 바로가기

문제 풀이41

[S3] 백준 21921 - 블로그 (Python3) https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 해결방법 구간 합 중 가장 큰 값이 무엇이며, 그 값이 몇 번 나오는지 파악해야 하는 문제로 누적합과 슬라이딩 윈도우를 이용할 줄 알아야 한다. 코드 N, X = map(int, input().split()) arr = list(map(int, input().split())) prefix = [0] for i in range(N): prefix.append(prefix[i] + arr[i].. 2023. 1. 14.
[S4] 백준 4949 - 균형잡힌 세상 (Python3) https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 이 문제보다 한 단계 쉬운 문제는 백준 9012번: 괄호라고 생각한다. 이 문제를 풀고나서 이 문제를 푸는 것을 추천한다. 해결방법 스택을 활용하는 문제이다. bracket 이라는 리스트 변수에 여는 괄호("(", "[")를 담고, 닫는 괄호(")", "]")가 나올 때마다 bracket의 원소를 pop 해주는 방식으로 문제를 풀었다. 코드 while (string:=inpu.. 2023. 1. 14.
[S5] 백준 26517 - 연속인가? ? (Python3) https://www.acmicpc.net/problem/26517 26517번: 연속인가? ? 실수 $t$에 대하여, 함수 $f(x)$가 $x=t$에서 정의되어 있고, $\lim_{x \rightarrow t} f(x) = f(t)$인 경우 "$f(x)$는 $x=t$에서 연속이다"라고 한다. 함수 $f(x) = \begin{cases}ax+b & (x \leq k)\\ cx+d & (x > k)\end{cases}$가 주 www.acmicpc.net 해결방법 고등학교 수학 시간에 배웠던 개념을 잊지 않고 있어서 풀 수 있던 문제였다. 주어진 함수가 x=k에서 연속인지 판단하는 방법은 좌극한과 우극한이 같은지 확인하면 된다. 같다면 연속, 다르면 불연속. 코드 k = int(input()) a, b, c.. 2023. 1. 10.
[Python] 백준 5430 - AC https://www.acmicpc.net/problem/5430 해결방법 문제에 나와있는 대로 따르면 충분히 풀 수 있는 문제이긴 하다. 하지만 곧이곧대로 따르기만 하면 여러 가지 문제로 해결이 불가능하다. 코드 tc = int(input()) for _ in range(tc): command = input() arr_len = int(input()) input_raw_arr = input() raw_arr = list(map(str, input_raw_arr)) raw_arr.pop(0); raw_arr.pop(-1) arr = (''.join(raw_arr)).split(',') error = False # True: 에러 on, False: 정상작동중 head = True # True: 앞부터 읽.. 2022. 5. 29.
[Java] 백준 6068 - 시간 관리하기 https://www.acmicpc.net/problem/6068 6068번: 시간 관리하기성실한 농부 존은 시간을 효율적으로 관리해야 한다는 걸 깨달았다. 그는 N개의 해야할 일에 (1www.acmicpc.net해결방법 및 풀이https://study-it-all.tistory.com/14위 링크를 참조해주세요.java는 2차원 배열 대신 객체 배열을 이용해서 풀이를 했습니다.코드import java.util.Scanner;class Work{ int time; //일하는 데에 걸리는 시간 int deadline; //마감시간 Work(int t, int d){ this.time = t; this.deadline = d; }}public class Main.. 2022. 5. 20.
[Python] 백준 6068 - 시간 관리하기 https://www.acmicpc.net/problem/6068 6068번: 시간 관리하기 성실한 농부 존은 시간을 효율적으로 관리해야 한다는 걸 깨달았다. 그는 N개의 해야할 일에 (1=0: suc_all = True for i in range(works): if start + task[i][0] > task[i][1]: t -= 1 start = t suc_all = False break; start += task[i][0] # t일 때 모든 순회를 통과하면? # 그게 정답 if suc_all: print(t) break if t task[k][1]: task[i], task[k] = task[k], task[i] elif task[i][1] == task[k][1]: if task[i][0] > .. 2022. 5. 20.
[Python] 백준 1789 - 수들의 합 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 해결방법 val = 1에서 N을 계속 'N - val(N 빼기 val)' 해주며 N이 val보다 작아거나 같아지지 않게 만들면 된다. 코드 N = int(input()) - 1 val = 1 while val 2022. 5. 20.
[Python] 백준 2805 - 나무 자르기 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 이해 먼저 문제 이해를 하겠다. 처음에 문제를 읽으면서 무슨 말인가 했다. 절단기가 위에서 아래로 이동하는 건 줄 알았는데, 문제를 다시 읽어보니 아래 그림처럼 가로로 이동을 하는 것이었다! 문제가 요구하는 바는 위 그림처럼 나무를 잘랐을 때, 자르고 남아버린 나무조각(?)들의 높이의 합이 M보다 크거나 같음을 만족하는 H의 최솟값을 구하라는 것이다. .. 2022. 5. 19.