Problem Solving/CT-Python

문제 https://www.acmicpc.net/problem/2527 2527번: 직사각형 4개의 줄로 이루어져 있다. 각 줄에는 8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직사 www.acmicpc.net 처음 시도한 풀이(시간 초과) a를 체크할 때 반복문을 너무 많이 사용하여 시간초과가 발생함. x1,y1,p1,q1, x2,y2,p2,q2 = map(int,input().split()) board = [[0 for _ in range(10000)] for _ in range(10000)] def a_check(): area = (p1-x1)*(q1-y1) for i in range(x1,p..
문제 https://www.acmicpc.net/problem/16395 16395번: 파스칼의 삼각형 파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행 www.acmicpc.net 제출한 풀이 n, k = map(int,input().split()) num_list = [[1],[1,1]] for i in range(2, n): t = [1] for j in range(1,i): t.append(num_list[i-1][j-1] + num_list[i-1][j]) t.append(1) num_list.append(t) print(num_list[n-1][k..
문제 - BOJ https://www.acmicpc.net/problem/17614 17614번: 369 민수는 같은 반 친구들과 369게임을 하고 있다. 369게임은 여러 명이 원형으로 둘러 앉아 시작 위치의 사람이 1을 외치며 시작된다. 이후 시계방향으로 돌아가며 2, 3, 4와 같이 1씩 증가된 수가 자 www.acmicpc.net 풀이 import sys input = sys.stdin.readline res = 0 for i in range(1, int(input())+1): res += str(i).count('3')+str(i).count('6')+str(i).count('9') print(res) 파이썬으로 실행하면 문자열이 아닌 정수형으로 다룬다면 시간초과가 발생하지 않을듯 pypy로 실..
문제 https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 풀이 ( A넓이 - B넓이 ) X (면적당 참외 수) 하면 간단한 문제 B의 길이와 넓이를 구하면 문제를 쉽게 풀 수 있음 B의 길이와 넓이를 구하는 방법은 문제에서 방향, 거리 를 입력 받게 되는데 입력 리스트들 중에서 한 방향이 하나의 인덱스를 건너뛰고 또 나오게 된다면 (위의 그림에서 빨강, 파랑 부분) 그 중간의 인덱스가 가리키는 값이 B의 가로, 세로 길이가 됨. 이때 인덱스가 리..
문제 SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 for test_case in range(1,11): result = 0 houseCount = int(input()) house = list(map(int , input().split())) for i in range(2, houseCount-2): def_2 = house[i] - house[i-2] def_1 = house[i] - house[i-1] def1 = house[i] - house[i+1] def2 = house[i] - house[i+2] if def_2 > 0 and def_1 > 0 and def1..
문제 https://www.acmicpc.net/problem/2635 2635번: 수 이어가기 첫 번째 수가 주어진다. 이 수는 30,000 보다 같거나 작은 양의 정수이다. www.acmicpc.net 풀이 맞는데 왜 틀렸지를 연발한 문제.. for j in range(1,n+1): 에서 범위를 n으로 해서 1이 대입되었을 때 정확한 답이 나오지 않았기 때문.. n = int(input()) max_nl = [] # 뽑은 수 저장 리스트 max_len = 0 # 최대 개수의 수 # 1부터 입력된 양수까지 반복 for j in range(1, n+1): nl = [n, j] # 임시 리스트 i = 0 while True: a = nl[i] - nl[i+1] i+=1 # 음의 정수가 만들어지면 중단 if..
문제 https://www.acmicpc.net/problem/2669 2669번: 직사각형 네개의 합집합의 면적 구하기 평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으 www.acmicpc.net 풀이 겹치는 면적을 어떻게 구할까 생각했는데 아무값도 없는 x, y 평면에 사각형이 한번이라도 해당 면적에 속하면 1을 대입함. 이후 x,y평면에 해당 좌표에 있는 값이 1들의 크기들을 더하면 면적이 됨. # x,y 평면 board = [[0 for _ in range(101)] for _ in range(101)] # x 시작, y시작, x끝, y끝 입력받고 해당 좌..
문제 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 내가 제출한 답 a = [int(input()) for _ in range(9)] sumList = sum(a) for i in range(8): for j in range(i+1, 9): if sumList - (a[i] + a[j]) == 100: one = a[i] two = a[j] a.remove(one) a.remove(two) a.sort() for b in a: print(b) if l..
문제 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제를 잘못 접근했다. 몸무게가 큰 순서대로 sort로 정렬하고 0번째 리스트 원소와 1번째 리스트 원소를 비교 1번째 리스트 원소와 2번째 리스트 비교... 반복하여 해당 인덱스에 rank를 추가하였다. [[88, 186, 1], [60, 175, 2], [58, 183, 2], [55, 185, 2], [46, 155, 5]] 출력을 구하였지만 문제에서 원하는 출력이 아니니까..
문제 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 코드 import sys import heapq n = int(sys.stdin.readline()) card = [] answer = 0 for _ in range(n): heapq.heappush(card, int(sys.stdin.readline())) if len(card) == 1: print(0) else: while len(card) > 1: left = heapq..
White Asher
'Problem Solving/CT-Python' 카테고리의 글 목록 (3 Page)