프로그래밍

    [백준_python] 더하기 사이클 || 1110

    [백준_python] 더하기 사이클 || 1110

    1110번: 더하기 사이클 (acmicpc.net) 1110번: 더하기 사이클0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,www.acmicpc.net 이전 풀이https://dmaolon00.tistory.com/9 [백준_python] math_factorial || 11050, 1110math라는 모듈 안에는 다양한 함수들이 있는데 그 중 factorial함수를 불러와 사용한다. from math import factorial 1. 이항 계수 www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)..

    [백준_python] 블랙잭 || 2798

    [백준_python] 블랙잭 || 2798

    2798번: 블랙잭 (acmicpc.net) 2798번: 블랙잭첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장www.acmicpc.net# 블랙잭 n, m = map(int, input().split()) card = list(map(int, input().split())) result = 0 for i in range(n): for j in range(i+1, n): for k in range(j+1, n): if card[i] + card[j] + card[k] > m: continue else: result = max(..

    [백준_python] 아스키 코드 || 11654

    11654번: 아스키 코드 (acmicpc.net) 11654번: 아스키 코드알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.www.acmicpc.net# 아스키 코드 a = input() print(ord(a))ord( )라는 아스키 코드 값을 반환하는 함수를 이용한다.

    [백준_python] A + B - 4  || 10951

    [백준_python] A + B - 4 || 10951

    10951번: A+B - 4 (acmicpc.net) 10951번: A+B - 4두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.www.acmicpc.net#A+B-4 while True: try: a, b = map(int, input().split()) print(a+b) except: breakwhile문을 이용하여 반복하고, 그 속에 try ~ except를 이용하여 에러 처리를 해준다.

    [백준_python] 캠핑 || 4796

    [백준_python] 캠핑 || 4796

    www.acmicpc.net/problem/4796 4796번: 캠핑입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다.www.acmicpc.net #캠핑 import sys cnt = 1 while True: day = 0 l, p, v = map(int, sys.stdin.readline().split(' ')) if l ==0 and p ==0 and v ==0: break day += l * (v//p) + min(v%p, l) print("Case %d: %d" %(cnt, day)) cnt += 1 휴가 v일 중에 l일 x v//p만큼 캠핑을 ..

    [백준_python] 상근이의 여행 || 9372 (최소 신장 트리)

    [백준_python] 상근이의 여행 || 9372 (최소 신장 트리)

    www.acmicpc.net/problem/9372 9372번: 상근이의 여행첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net위 예제 입력을 보고 그래프를 따라 그려보면, 모든 정점들이 이어져 있다. 신장 트리(spanning tree)가장 적은 간선을 가진 그래프이다.n개의 정점을 가지는 그래프의 최소 간선의 개수는 n-1개이고, 이러한 트리 형태를 뜻한다. - 하나의 그래프 속에는 많은 신장 트리가 존재할 수 있다.(DFS와 BFS를 이용하여 찾을 수 있다)- 모든 정점들이 연결되어 있어야 하며,..

    [백준_python] DFS와 BFS || 1260

    [백준_python] DFS와 BFS || 1260

    www.acmicpc.net/problem/1260 1260번: DFS와 BFS첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사www.acmicpc.net깊이 우선 탐색(DFS_Depth-First Search): 루트 노드를 모두 완벽하게 탐색을 한 후 다음 분기로 넘어가는 방법 모든 노드를 방문 하고자 하는 경우에 이용 순환 호출 혹은 스택 이용너비 우선 탐색(BFS_Breadth-First Search): 루트 노드에서 인접한 노드부터 먼저 탐색하는 방법두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 사용 재귀적..

    [백준_python] 늑대와 양 || 16956

    [백준_python] 늑대와 양 || 16956

    www.acmicpc.net/problem/16956 16956번: 늑대와 양크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게 www.acmicpc.net이거 출력이 저렇게 안나와도 맞았다고 해준다.. 풀다가 아무래도 모르겠어서 다른 분들 코드를 보면서 오호 이렇게 하는거구나 하고 열심히 했는데 출력이 예제와 달라서 어쩌지,,하다가 제출했더니 맞았다고 그랬다..! ㅠㅠ(이유는 모름) 일단, 이 문제는 늑대와 양이 인접하는 지를 알아보기 위해, 늑대를 찾아 늑대의 상하좌우를 검색하며 울타리를 설치할 수도 없이 바로 양과 인접한 경우에는 0을 출력하고, 그 외에는 ..

    [백준_python] 접미사 배열 || 11656

    [백준_python] 접미사 배열 || 11656

    www.acmicpc.net/problem/11656 11656번: 접미사 배열첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.www.acmicpc.net먼저, 입력받은 문자열을 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n로 표현해주기 위해 i를 하나씩 늘려가며 해당 문자열들을 배열 속으로 넣어주었다. 그 후 sort를 이용하여 사전순 정렬이 되도록 바꿔준 후 출력이 되도록 하였다.#접미사 배열 S = input() arr = [] for i in range(len(S)): arr.append(S[i:]) arr.sort() print(*arr, sep = "\n")

    [백준_python] 로프 || 2217

    [백준_python] 로프 || 2217

    www.acmicpc.net/problem/2217 2217번: 로프N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하www.acmicpc.net굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다르다. 병렬로 연결하면 각가의 로프에는 모두 고르게 w(중량) / k(로프의 개수) 만큼의 중량이 걸린다. 모든 로프를 사용해야할 필요가 없다. 최대 중량을 구하는 문제이다. 모든 로프를 사용해야할 필요가 없다는 부분에서 어떻게 해야하는 거지,,라는 생각과 함께 그냥 sort( )를 해서 가장 작은 중량과 주어진 로프의 개수를 곱하는 것 외에는 ..