본문 바로가기

분류 전체보기125

[백준/파이썬(Python), 자바(JAVA)] 수리공 항승 1449(Silver 3) 💌문제 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 💌풀이 물이 새는 곳을 편의상 창문이라고 칭하겠다. 창문이 있는 위치는 제각각으로 들어오기 때문에, 연산하기 쉽도록 처음에 정렬을 하고 시작한다. 물을 막을 때 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 한다고 했기 때문에, x-0.5와 x+0.5까지를 고려하며 계산해야 한다. 만약 테이프의 길이가 최대 1이라면, (x+0.5)-(x-0.5)=1이기 때문에 테이프는 창문.. 2023. 2. 7.
[백준/파이썬(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 🐱풀이 벌목 높이를 움직여서 필요 나무 길이를 채우는지 확인한다. 가장 짧은 길이 1을 start로 정하고, 나무 중에 가장 긴 길이를 end로 설정한다. 이진탐색이 끝날 때까지 while문을 돌린다. mid를 start와 end의 중간으로 두고, 모든 값에서 mid를 빼서 총 어느정도 길이의 벌목된 나무가 나오는지 확인한다. 만약 벌목된 나무가 목표.. 2023. 2. 6.
[백준/파이썬(Python)] 2252 줄세우기(Gold 3) 💜문제 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 💜코드 from collections import deque n,m=map(int,input().split()) num=[[] for _ in range(n+1)] visit=[0]*(n+1) for _ in range(m): a,b=map(int,input().split()) num[a].append(b) visit[b]+=1 def topolo.. 2023. 2. 5.
[SWEA D2/파이썬(Python)] 스도쿠 검증 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Psz16AYEDFAUq& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 def checkNumber(array): set1, set2, set3, set4 = set(), set(), set(), set() col=[set() for _ in range(9)] cnt=0 for i in range(9): cnt+=1 set4 = set() for j in range(9): col[j].add(array[i][j]) if array[i][j] in set4:.. 2023. 2. 4.