알고리즘/Python

알고리즘/Python

[python] 백준 1978 - 소수 찾기

출처 : 백준, https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 참고 : 에라토스테네스의 체 프로그래머스 - 소수 찾기 더보기 풀이 if __name__ == '__main__': n = int(input()) num_set = set(map(int, input().split())) max_num = max(num_set) if 1 in num_set: num_set.remove(1) for i in range(2, int(max_num ** 0.5) + 1): num_set -= set(j for j in ra..

알고리즘/Python

[python] 백준 1292 - 쉽게 푸는 문제

출처 : 백준, https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 더보기 풀이 if __name__ == '__main__': a, b = map(int, input().split()) num_arr = [i for i in range(1, 46) for _ in range(i)] print(sum(num_arr[a-1:b])) 이 풀이가 맞는지를 잘 모르겠는데 난 이렇게 풀었다. 먼저, 시작과 끝을 나타내는 입력 A, B가 1 ≤ A ≤ B ≤ 1000이므로 배열의 ..

알고리즘/Python

[python] 백준 2579 - 계단 오르기

출처 : 백준, https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 이거 한국정보올림피아드 지역부 본선 초등부 문제인걸 알면 얼마나 많은 사람들이 절망에 빠질까 일단 난 빠졌다.......... 더보기 첫 번째 풀이 : 실패 if __name__ == '__main__': n = int(input()) stairs = [int(input()) for _ in range(n)] visited = [-1] * n visited[n-1] = 1 stairs[n-1]..

알고리즘/Python

[python] 백준 10158 - 개미

출처 : 백준, https://www.acmicpc.net/problem/10158 10158번: 개미 가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오 www.acmicpc.net 더보기 첫 번째 풀이 : 시간초과 if __name__ == '__main__': w, h = map(int, input().split()) position = list(map(int, input().split())) target = int(input()) dx = 1 dy = 1 time = 0 while True: if time == target: break ..

알고리즘/Python

[python] 백준 2693 - N번째 큰 수

출처 : 백준, https://www.acmicpc.net/problem/2693 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net 더보기 풀이 if __name__ == '__main__': num_arrs = [sorted(list(map(int, input().split()))) for _ in range(int(input()))] for num_arr in num_arrs: print(num_arr[-3]) 와 파이썬 너무 신기해 시간 복잡도 O(NlogN) 다른 사람의 풀이를 ..

알고리즘/Python

[python] 백준 2108 - 통계학

출처 : 백준, https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 와 문제 더럽다 더보기 풀이 from collections import Counter import sys if __name__ == '__main__': arr = [int(sys.stdin.readline()) for _ in range(int(input()))] arr.sort() L = len(arr) avg = int(round(sum(arr) / len(arr), 0)) middle =..

알고리즘/Python

[python] 백준 2609 - 최대공약수와 최소공배수

출처 : 백준, https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 참고 프로그래머스 - N개의 최소공배수 유클리드 호제법 ​ 더보기 풀이 def gcd(a, b): if b == 0: return a return gcd(b, a%b) if __name__ == '__main__': A, B = map(int, input().split()) if A < B: A, B = B, A G = gcd(A, B) L = A * B//G print(G) print(L) 시간 복잡도 - 다른 사람의 풀이를 보면서 알게 된 점 ..

알고리즘/Python

[python] 프로그래머스 - 전력망 둘로 나누기

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 최근 문제 중에 최고난도... 처음 생각한 로직은 말단 노드를 모두 찾고, 말단 노드 중 가장 거리가 먼 노드를 찾고 이 둘을 하나씩 채워간다. 더보기 첫 번째 풀이 : 참고하기 참고, 실패 def solution(n, wires): answer = -1 min_val = 200 for x in range(len(wires)..

알고리즘/Python

[python] 백준 2309 - 일곱 난쟁이

출처 : 백준, https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 백설 공주는 키 합이 100이면 누가되든 상관이 없던걸까? 백설 공주에게 난쟁이란 그런 언제든지 대체 가능한 존재였던걸까... 너무 불쌍해 보자마자 N-Qeeuns 문제가 떠올랐다. 참고 : Recursion(재귀) Covenant님 블로그 - 용감하게 시작하는 코딩테스트 1편 더보기 풀이 Recursion와 Backtracking을 이용해서 문제를 해결해보자. Backtracking을 이..

알고리즘/Python

[python] 프로그래머스 - 행렬의 곱셈

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 만만하게 봤는데 코드를 깔끔히 작성한다는 점에서 다른 사람들의 풀이를 공부해볼 가치가 있는 문제였다 더보기 풀이 def solution(arr1, arr2): answer = [] for i in range(len(arr1)): arr = [] for j in range(len(arr2[0])): count..

알고리즘/Python

[python] 백준 2460 - 지능형 기차2

출처 : 백준, https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 더보기 풀이 if __name__ == '__main__': people = 0 max_p = 0 while True: try: minus, plus = map(int, input().split()) people = people - minus + plus if max_p < people: max_p = people except: break print(max_p) 입력이 끝날 ..

알고리즘/Python

[python] 백준 3460 - 이진수

출처 : 백준, https://www.acmicpc.net/problem/3460 3460번: 이진수 양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다. www.acmicpc.net 내가 이해를 못하는건가 문제 설명이 부족한건가 예제에 2개나 3개짜리 예제를 보여줘야 하는 것 같은데 계속 답 값 자체는 맞는데 출력 형식을 못 맞춰서 틀림...... input도 테스트 케이스별로 한 줄 씩 들어가고 출력도 테스트케이스 별로 한 줄 씩 나온다. input 2 #T 13 2 output 0 2 3 1 더보기 풀이 if __name__ == '__main__': T = int(in..

제주도랏맨
'알고리즘/Python' 카테고리의 글 목록 (10 Page)