python 29

Baekjoon Online Judge 9093

문제 링크 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 정답 코드 import sys T = int(sys.stdin.readline()) for i in range(T): string = sys.stdin.readline().rstrip().split() for j in string: #한 단어씩 나누기 print(j[::-1], end=' ') #단어를 뒤집어 출력 print()

Baekjoon Online Judge 4256번 파이썬. 분할정복.

문제 링크 https://www.acmicpc.net/problem/4256 4256번: 트리 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 노드의 개수 n이 주어진다. (1 ≤ n ≤ 1,000) BT의 모든 노드에는 1부터 n까지 서로 다른 번호가 매겨져 있다. 다음 www.acmicpc.net 전위순회한 결과의 맨 앞 노드는 전체 트리의 루트이다. 중위순회한 결과에서 전체 트리의 루트를 기준으로 왼쪽은 왼쪽 서브트리이고, 오른쪽은 오른쪽 서브트리이다. 후위순회는 왼쪽, 오른쪽, 루트 순으로 출력하는 것이다. 그래서 전체 트리의 루트(root)를 기준으로 왼쪽 먼저 함수를 실행하고, 다음으로 오른쪽을 실행한다. 그리고 마지막에 root를 출력한다. 정답 코드 impo..

Baekjoon Online Judge 17829번 파이썬. 분할정복.

문제링크 https://www.acmicpc.net/problem/17829 17829번: 222-풀링 조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 22 www.acmicpc.net 'divide=size//2'로 정사각형을 4등분을 할 수 있도록 하였다. 그리고 dnc함수에서 lefttop,righttop,leftbottom,rightbottom으로 나누어 진행될 수 있도록 하였다. 정답코드 import sys N = int(sys.stdin.readline()) nums = [] for i in range(N): nums.ap..

Baekjoon Online Judge 2448번 파이썬. 분할 정복.

문제 링크 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 빨간 부분과 주황 부분, 두개의 공간으로 나누어 풀었다. 정답 코드 import sys N = int(sys.stdin.readline()) def draw_stars(N): if N == 3: return [" * "," * * ","*****"] divide = draw_stars(N//2) stars = [] for d in divide: #빨간 공간 stars.append(' '*(N//2)+d+' '*(N//2)) for d in..

Baekjoon Online Judge 2447번 파이썬. 분할 정복.

문제 링크 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 빨간 부분을 상, 주황 부분을 중, 노란 부분을 하로 생각해서 3구간으로 나누어 풀었다. 정답 코드 import sys N = int(sys.stdin.readline()) def dnc(N): if N == 1: return ["*"] divide = dnc(N//3) stars = [] for d in divide: #상 stars.append(d*3) f..

Baekjoon Online Judge 11728번

문제 링크 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 정답 코드 import sys n,m = map(int,sys.stdin.readline().split()) N = list(map(int,sys.stdin.readline().split())) M = list(map(int,sys.stdin.readline().split())) result = N + M result = sorted(result) p..

Baekjoon Online Judge 1744번. 그리디.

문제 링크 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 정답 코드 import sys N = int(sys.stdin.readline()) positive = [] negative = [] result = 0 for i in range(N): num = int(input()) if num > 1: positive.append(num) elif num = len(positive): #같이 곱해질 짝이 없으면 더하기 result += posi..

Baekjoon Online Judge 11399번 파이썬. 그리디.

문제 링크 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 정답 코드 import sys N = int(sys.stdin.readline()) P = list(map(int,sys.stdin.readline().split())) P = sorted(P) min = 0 result = 0 for i in P: min += i result += min print(result)

Baekjoon Online Judge 1931번 파이썬. 그리디.

문제 링크 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 정답 코드 import sys N = int(sys.stdin.readline()) I = [] for i in range(N): I.append(list(map(int,sys.stdin.readline().split()))) I = sorted(I,key=lambda x:x[0]) #시작시간 기준 오름차순 정렬 I = sorted(I,key=lambda x:x[1]) #종료시간 기준 오름차순 정렬 last = 0 #회의가 끝나는 시간 count = 0 #회의 개수 세기 for i,j in I: if ..

728x90