반응형

파이썬 196

[파이썬, Python] 백준 1021: 회전하는 큐

문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 코드 from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) idx = list(map(int, input().split())) q = deque(i for i in range(1, n+1)) cnt = 0 for i in idx: while True: if q[0..

[T-SUM] 4주차 자료 - 변수와 함수, 매개변수와 인수

오늘의 내용 미리보기 본문 변수(Variable) 이전 시간 내용을 잠깐 떠올려 봅시다. 이런 식으로 출력을 했는데, 만약 이걸 여러 번 출력하려면? 물론 이렇게 하는 방법도 있겠지만 조금 더 간결하게 표현해 봅시다. 이렇게 바꾸면 조금 더 편하게 출력이 가능하겠죠? 여기서 사용한 a를 우리는 변수라고 합니다. 언제든지 그 값을 변경할 수 있어요. 다른 예시도 볼까요. 이렇게 숫자를 지정해서 각 변수를 더하는 방법도 사용이 가능해요. 물론 a와 b의 값을 바꾸면 결괏값도 변화합니다. 그러면 다른 재밌는 예시도 하나 봅시다. 다음과 같이 코드가 존재할 때, c의 값은 어떻게 될까요? 바로 7이 됩니다. 이전 시간에 잠시 언급을 했었는데 파이썬은 코드를 위에서 아래로 읽는 방법을 사용합니다. 1번 라인에서 ..

T-SUM 멘토링 2023.06.22

[파이썬, Python] 백준 11053: 가장 긴 증가하는 부분 수열

문제 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 코드 n = int(input()) num = list(map(int, input().split())) dp = [1 for i in range(n)] for i in range(n): for j in range(i): if num[i] > num[j]: dp[i] = max(dp[i], dp[j]+1) print..

[파이썬, Python] 백준 9656: 돌 게임 2

문제 https://www.acmicpc.net/problem/9656 9656번: 돌 게임 2 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 코드 n = int(input()) if n % 2 == 0: print("SK") else: print("CY") 설명 https://looancheong.tistory.com/176 [파이썬, Python] 백준 9655: 돌 게임 문제 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 코드 n = int(input()) if n % 2 == 0: print("CY")..

[파이썬, Python] 백준 9375: 패션왕 신해빈

문제 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) for i in range(t): ans = 1 clothes = dict() n = int(input()) for i in range(n): _, a = input().split() if a no..

[파이썬, Python] 백준 2193: 이친수

문제 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 코드 n = int(input()) dp = [0] * (n + 1) dp[1] = 1 for i in range(2, n+1): dp[i] = dp[i-2] + dp[i-1] print(dp[n]) 설명 규칙을 찾아서 해결하는 dp 문제였다. n = 1 일 때, [1] n = 2 일 때, [10] n = 3 일 때, [100][101] n = 4 일 때, [1000][1001][..

[파이썬, Python] 백준 11652: 카드

문제 https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) card = dict() for i in range(n): a = int(input()) if a not in card: card[a] = 0 card[a] += 1 print(max(sorted(card), key = card.get)) 설명 n을 입력받고, card의 딕셔너리를 이..

[파이썬, Python] 백준 1057: 토너먼트

문제 https://www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 코드 n, a, b = map(int, input().split()) cnt = 0 while True: cnt += 1 if (a+1) // 2 == (b+1) // 2: print(cnt) break else: a = (a+1) // 2 b = (b+1) // 2 n, a, b = map(int, input().split()) cnt = 0 while a != b: cnt += 1 a -= a ..

[T-SUM] 2주차 자료 - Hello World! Hello Python!

오늘의 내용 미리보기 본문 우선 앞서 다운로드한 Jupyter Notebook을 실행합시다. 작업 표시줄 - 찾기 - Jupyer Notebook 검색 - 실행 그리고 원활한 수업 진행을 위해 폴더도 하나 만들어봅시다. 우측 상단에 버튼이 있어요. 그러면 중간에 폴더가 하나 짠하고 생깁니다. 이름을 바꿔줍시다. 폴더 옆에 체크박스를 클릭하면 왼쪽 위에 버튼이 생겨요. 원하는 폴더명으로 바꿔주고 폴더에 들어갑시다. 폴더에 들어가서 다시 New 버튼을 통해 파일을 하나 만듭시다. Python 3라고 되어있는 버튼을 눌러서 생성합시다. 첫 파이썬 파일을 생성했어요. '.ipynb' 라는 확장자는 Jupyter Notebook에서 사용하는 확장자 이름입니다. 보통 일반적인 파일은 '파일이름.py' 와 같이 py..

T-SUM 멘토링 2023.06.08

[파이썬, Python] 백준 1748: 수 이어 쓰기 1

문제 https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 코드 n = int(input()) len_n = len(str(n)) cnt = 0 for i in range(len_n - 1): cnt += 9 * 10 ** i * (i+1) print(cnt + (n - 10 ** (len_n - 1) + 1) * len_n) 설명 단순하게 수를 구해서 푸는 문제라기엔 주어진 범위가 넓어서 규칙성을 찾아야 했다. 혼자서는 찾지 못해서 검색을 통해 해결했다. n의 규칙은 이렇다. 자릿수 1개의 경우: 숫자는 1~9까지 존재, 모두 더하면 자리수가 9개 자릿수 2개의 경우:..

반응형