본문 바로가기
728x90

알고리즘/[python] 백준 BOJ328

[python] 백준 1201 NMK https://www.acmicpc.net/problem/1201 1201번: NMK 첫째 줄에 세 정수 N, M, K가 주어진다. www.acmicpc.net 문제 해결 먼저 수열을 구할 수 있기 위한 n의 범위를 알아야한다. m+k-1 ≤ n ≤ m*k 이다. n이 가장 작을 때는 [1, 2, 3, .. . m, m-1, m-2, . . . m+k-1] 수열이며 n이 가장 클 때는 [k,k-1,k-2, . . . 1, 2*k, 2*k-1, . . . k+1, . . . m*k, m*k-1, . . . (m-1)*k + 1] 이다. n이 범위 안에 들어오면 처음으로 k개의 숫자를 내림차순해서 k개의 내림차순을 만든다. 이제 k+1~n까지 정렬해서 m-1개의 오름차순 수열을 만들어야한다. 여기서부터 너무.. 2023. 8. 27.
[python] 백준 2671 잠수함식별 https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net 문제 해결 정규식을 사용할 수 있는지 문제 re.compile 로 주어진 정규식 조건을 확인하는 식을 만들 수 있고 fullmatch 로 조건을 만족하는지 만족하지 않는지 확인할 수 있다. CODE import sys input = sys.stdin.readline import re n = str(input().rstrip()) pattern = re.compile("(100+1+|01)+") r.. 2023. 8. 26.
[python] 백준 17386 선분 교차 1 https://www.acmicpc.net/problem/17386 17386번: 선분 교차 1 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다. www.acmicpc.net 문제 해결 CCW를 사용하는 문제 CCW는 외적을 이야기 한다. 우선 두 직선이 일직선 위에 있는 경우가 없으므로 평행하거나 일치, 여러점이 겹치는 것을 생각할 필요가 없다. 따라서 L2의 끝 두점 (x3,y3), (x4,y4)와 L1의 두 끝점 (x1,y1), (x2,y2)을 CCW로 계산해서 양수가 하나라도 나오면 교차를 하지 않는다. CODE import sys input = sys.stdin.readline .. 2023. 8. 25.
[python] 백준 19583 싸이버개강총회 https://www.acmicpc.net/problem/19583 19583번: 싸이버개강총회 첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는 www.acmicpc.net 문제 해결 시간비교를 어떻게 할 것인가가 문제 시간을 string type으로 바꾼다음 :을 제외하고 이어 붙여 정수로 만들어 비고하면 편하다! 19:53 → 1953, 20:00 → 2000 로 바꾼 후 비교! 시작시간 이전에 들어오고 끝낸 시간에서 스트리밍을 끝낸 시간 사이에 나가는 것이 확인 되면 답의 개수를 추가하면 끝! CODE import sys i.. 2023. 8. 21.
728x90