반응형

파이썬 196

[파이썬, Python] 백준 11000: 강의실 배정

문제 https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 코드 import sys input = sys.stdin.readline import heapq n = int(input()) cls = [list(map(int, input().split())) for _ in range(n)] cls.sort() room = [] heapq.heappush(room, cls[0][1]) for i in range(1, n): if cls[i][0] < room[0]: heapq.heappush(room..

[파이썬, Python] 백준 1149: RGB거리

문제 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) dp = list(list(map(int, input().split())) for _ in range(n)) for i in range(1, n): dp[i][0] += min(dp[i-1][1], dp[i-1][2]) dp[i][1] += min(dp[i-1][0],..

[파이썬, Python] 백준 3986: 좋은 단어

문제 https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 코드 n = int(input()) cnt = 0 for _ in range(n): s = input() stack = [] for i in s: if stack and stack[-1] == i: stack.pop() else: stack.append(i) if not stack: cnt += 1 print(cnt) 설명 우선 n을 받아주고, 정답을 카운트할 cnt를 만들어준다. 그리고 n의 수만큼 ..

[T-SUM] 5주차 자료 - if/else/elif 조건문, and/or

오늘의 내용 미리보기 본문 세상을 살다 보면 조건에 따라 결과가 달라지는 경우가 있습니다. 비밀번호가 맞으면 금고가 열린다거나, 올바른 출입증이 아니면 출입이 안 된다거나 뭐 그런 상황이 있어요. 코딩을 하다가도 이런 상황을 자주 마주칩니다. 특정 사용자는 이용이 불가능한 게시판이 있다던지, 로그인을 하지 않으면 접속이 안된다던지 하는 그런 상황이 있죠. 우리는 이런 상황을 이렇게 표현합니다. '만약 ~ 라면' 이를 조건문이라고 합니다. 파이썬에서는 이를 if와 else를 사용해서 표현합니다. 우선 예시를 한 번 볼까요? 배우지는 않았지만 어째서인지 읽을 수는 있을 것 같죠? 있는 그대로 읽으면 됩니다. 만약 10이 7보다 크다면(조건) 정답을 출력하라(결과) 이런 식으로 조건문은 조건과 그에 따른 결과..

T-SUM 멘토링 2023.07.06

[파이썬, Python] 백준 1439: 뒤집기

문제 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 코드 s = input() cnt = 0 for i in range(len(s) - 1): if s[i] != s[i + 1]: cnt += 1 print((cnt + 1) // 2) 설명 어렵게 접근하려다가 아이디어가 생각이 안 나서 그냥 다른 부분을 뒤집어 보기로 생각했다. 0에서 1로 혹은 1에서 0으로 변하는 부분을 카운트해 준다. 그러고 나서 2로 나눈 몫을 출력할 건데 0 혹은 1..

[파이썬, Python] 백준 3273: 두 수의 합

문제 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) nums = sorted(list(map(int, input().split()))) x = int(input()) cnt = 0 start = 0 end = n - 1 while start < end: inter_sum = nums[s..

[파이썬, Python] 백준 2776: 암기왕

문제 https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) note1 = set(map(int, input().split())) m = int(input()) note2 = list(map(int, input().split())) for num in note2: if num in note1..

[파이썬, Python] 백준 10974: 모든 순열

문제 https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 n = int(input()) s = [] def dfs(): if len(s) == n: print(' '.join(map(str,s))) return for i in range(1, n+1): if i not in s: s.append(i) dfs() s.pop() dfs() 설명 https://looancheong.tistory.com/147 [파이썬, Python] 백준 15649: N과 M (1) 문제 https://www.acmicpc.net/problem/1564..

[파이썬, Python] 백준 9372: 상근이의 여행

문제 https://www.acmicpc.net/problem/9372 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**9) def dfs(idx, cnt): visited[idx] = 1 for i in graph[idx]: if visited[i] == 0: cnt = dfs(i, cnt+1) return cnt t = int(input()) for ..

[파이썬, Python] 백준 1049: 기타줄

문제 https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) pack = list() one = list() for _ in range(m): a, b = map(int, input().split()) pack.append(a) one.append(b) min_pack, min_one = min(pack), min(o..

반응형