Python 929

[정렬] 이코테 (파이썬) 안테나 풀이

[문제] 일직선상의 마을에 여러 채의 집이 위치해 있습니다. 이 중에서 특저 위치의 집에 특별히 한 개의 안테나를 설치하기로 결정했습니다. 효율성을 위해 안테나로부터 모든 집까지의 거리의 총합이 최소가 되도록 설치하려고 합니다. 이때 안테나는 집이 위치한 곳에만 설치할 수 있고, 논리적으로 동일한 위치에 여러 개의 집이 존재하는 것이 가능합니다. 집들의 위치 값이 주어질 때, 안테나를 설치할 위치를 선택하는 프로그램을 작성하세요. 예를 들어 N = 4이고, 각 위치가 1, 5, 7, 9일 때를 가정하겠습니다. 이 경우 5의 위치에 설치했을 때, 안테나로부터 모든 집까지의 거리의 총합이 (4 + 0 + 2 + 4) = 10으로, 최소가 됩니다. [입력 조건] 1. 첫째 줄에 집의 수 N이 자연수로 주어집니..

[정렬] 이코테 (파이썬) 국영수 풀이

[문제] 도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어집니다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하세요. 1. 국어 점수가 감소하는 순서로 2. 국어 점수가 같으면 영어 점수가 증가하는 순서로 3. 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 4. 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키코드에서 대문자는 소문자보다 작으므로 사전 순으로 앞에 옵니다.) [입력 조건] 1. 첫째 줄에 도현이네 반의 학생 수 N (1

백준(Python) 5363번 요다 풀이

Python으로 구현한 5363번 요다 문제 풀이입니다. https://www.acmicpc.net/problem/5363 5363번: 요다 첫째 줄에 문장의 수 N이 주어진다. 둘째 줄부터 N개의 줄에는 각 문장이 주어진다. 문장의 길이는 100글자 이내이다. 단어의 개수는 3개 이상이다. www.acmicpc.net n = int(input()) for _ in range(n) : data = list(input().split()) for i in range(2, len(data)) : print(data[i], end=' ') print(data[0], data[1]) 1. 문자열을 입력받아 리스트 형태로 구성한다. 2. 반복문을 통해 가장 앞 단어 두 개 이후의 단어들을 출력하고, 반복문이 끝나면..

백준(Python) 5026번 박사 과정 풀이

Python으로 구현한 5026번 박사 과정 문제 풀이입니다. https://www.acmicpc.net/problem/5026 5026번: 박사 과정 첫째 줄에 문제의 개수 N이 주어진다. (1 ≤ N ≤ 1000) 다음 N개 줄에는 "a+b"형식의 덧셈 문제나 "P=NP"가 주어진다. a,b ∈ [0,1000]이며 a와 b는 정수이다. www.acmicpc.net n = int(input()) for _ in range(n) : data = input() if data == 'P=NP' : print('skipped') else : a, b = map(int, data.split('+')) print(a + b) 1. 입력받은 값이 'P=NP'일 경우 'skipped'를 출력한다. 2. 그렇지 않은 ..

백준(Python) 14909번 양수 개수 세기 풀이

Python으로 구현한 14909번 양수 개수 세기 문제 풀이입니다. https://www.acmicpc.net/problem/14909 14909번: 양수 개수 세기 첫째 줄에 최대 1,000,000개의 정수가 주어진다. 입력으로 주어지는 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같다. www.acmicpc.net data = list(map(int, input().split())) result = 0 for i in range(len(data)) : if data[i] > 0 : result += 1 print(result) 1. 정수들을 입력받아 리스트 형태로 구성한다. 2. 반복문을 통해 data 리스트에 담겨있는 값들을 하나씩 확인하여 그 수가 0보다 클 경우 즉..

백준(Python) 12778번 CTP공국으로 이민 가자 풀이

Python으로 구현한 12778번 CTP공국으로 이민 가자 문제 풀이입니다. https://www.acmicpc.net/problem/12778 12778번: CTP공국으로 이민 가자 신생국가 CTP공국은 자신들만의 글자가 없다. CTP공국의 왕 준형이는 전 세계 표준 언어인 알파벳을 사용하기로 했다. 하지만 숫자에 미친 사람들이 모인 CTP공국 주민들은 알파벳을 사용할 때 평 www.acmicpc.net t = int(input()) for _ in range(t) : m, case = input().split() data = list(input().split()) if case == 'C' : for i in range(len(data)) : data[i] = ord(data[i]) - 64 els..

백준(Python) 17009번 Winning Score 풀이

Python으로 구현한 17009번 Winning Score 문제 풀이입니다. https://www.acmicpc.net/problem/17009 17009번: Winning Score The first three lines of input describe the scoring of the Apples, and the next three lines of input describe the scoring of the Bananas. For each team, the first line contains the number of successful 3-point shots, the second line contains the number of www.acmicpc.net apple = 0 banana = 0 f..

백준(Python) 13235번 팰린드롬 풀이

Python으로 구현한 13235번 팰린드롬 문제 풀이입니다. https://www.acmicpc.net/problem/13235 13235번: 팰린드롬 팰린드롬은 앞에서부터 읽을 때와 뒤에서부터 읽을 때가 똑같은 단어를 의미한다. 예를 들어, eve, eevee는 팰린드롬이고, eeve는 팰린드롬이 아니다. 단어가 주어졌을 때, 팰린드롬인지 아닌지 판 www.acmicpc.net n = input() value = n[::-1] if value in n : print('true') else : print('false') 1. 입력받은 n을 거꾸로 뒤집어 value에 담는다. 2. 조건문을 통해 거꾸로 뒤집혀 있는 value의 값이 n에 존재할 경우 팰린드롬에 해당하기 때문에 'true'를 출력한다. 3..

백준(Python) 2386번 도비의 영어 공부 풀이

Python으로 구현한 2386번 도비의 영어 공부 문제 풀이입니다. https://www.acmicpc.net/problem/2386 2386번: 도비의 영어 공부 출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다. www.acmicpc.net while True : n = input() if n == '#' : break value = n[0] data = n[2::] result = data.count(value) + data.count(value.upper()) print(value, result) 1. 입력받은 값이 '#'일 때까지 반복 수행한다. 2. value에 입력받은 n의..

백준(Python) 17389번 보너스 점수 풀이

Python으로 구현한 17389번 보너스 점수 문제 풀이입니다. https://www.acmicpc.net/problem/17389 17389번: 보너스 점수 숭고한 알고리즘 캠프 퀴즈 타임이 시작되었다! PS 기초, 동적 계획법, 파라메트릭 서치, 욱제의 생일, 탐색, 그리디, 최단경로 알고리즘, 구데기컵, 서로소 집합, 최소 신장 트리, 최소 공통 조상, www.acmicpc.net n = int(input()) data = input() score = 0 bonus = 0 for i in range(len(data)) : if data[i] == 'O' : score += i + 1 score += bonus bonus += 1 else : bonus = 0 print(score) 1. 입력받은 ..