알고리즘
[백준 파이썬] # 1929 소수 구하기 (복습 필요)
Silver II # 1929 소수 구하기 링크 : https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 풀이 def isPrime(num): if num == 1: return False else: for i in range(2, int(num**0.5)+1): if num%i == 0: return False return True M, N = map(int, input().split()) for i in range(M, N+1): if isPrime(i): print(i) 후기..
[백준 파이썬] # 1037 약수
Silver V # 1037 약수 링크 : https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 풀이 N = int(input()) nums = list(map(int, input().split())) print(min(nums)*max(nums))
[백준 파이썬] # 5086 배수와 약수
2022.02.21 Bronze III # 5086 배수와 약수 링크 : https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 풀이 while True: a, b = map(int, input().split()) if a==0 and b==0: break if b%a == 0: print('factor') elif a%b == 0: print('multiple') else: print('neither')
[백준 파이썬] # 3009 네 번째 점
Bronze III # 3009 네 번째 점 링크 : https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 풀이 x_li = [] y_li = [] for i in range(3): x, y = map(int, input().split()) x_li.append(x) y_li.append(y) for i in range(3): if x_li.count(x_li[i]) == 1: x4 = x_li[i] if y_li.count(y_li[i]) == 1: y4 = y_li[i] print(x4, y4) 후기 문자열 혹은 리스트 안의 ..
[백준 파이썬] # 1920 수 찾기
Silver IV # 1920 수 찾기 링크 : https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이_재귀적 구현 N = int(input()) N_li = list(map(int, input().split())) M = int(input()) M_li = list(map(int, input().split())) N_li.sort() def binary_search(array, target, st..
[백준 파이썬] # 10989 수 정렬하기 3
Silver V # 10989 수 정렬하기 3 링크 : https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 import sys N = int(sys.stdin.readline()) li = [0] * 10001 for i in range(N): num = int(sys.stdin.readline()) li[num] += 1 for i in range(len(li)): while li[i]: print(i) li[i] -= 1 후기 append를 사용하면 메모리 ..
[백준 파이썬] # 2108 통계학
Silver IV # 2108 통계학 링크 : https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 풀이 import sys from collections import Counter N = int(sys.stdin.readline()) li = sorted([int(sys.stdin.readline()) for i in range(N)]) c = Counter(li).most_common(2) # 산술평균 print(round(sum(li)/len(li))) # ..
[백준 파이썬] # 11651 좌표 정렬하기 2
Silver V # 11651 좌표 정렬하기 2 링크 : https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 N = int(input()) li = [] for i in range(N): x, y = map(int, input().split()) li.append([x, y]) li = sorted(li, key = lambda a: (a[1], a[0])) for i in li: pr..
[백준 파이썬] # 1978 소수 찾기
Silver IV # 1978 소수 찾기 링크 : https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 풀이 N = int(input()) nums = list(map(int, input().split())) cnt = 0 for i in nums: check = True if i in [0, 1]: check = False for j in range(2, int(i**0.5)+1): if i%j == 0: check = False if check: cnt += 1 print(cnt) 후기 에라노스테네스의 체를 이용해..
[백준 파이썬] # 1316 그룹단어 체커
Silver V # 1316 그룹 단어 체커 링크 : https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 풀이 N = int(input()) cnt = N for i in range(N): word = input() for j in range(len(word)-1): if word[j] == word[j+1]: pass elif word[j] in word[j+1:]: cnt -= 1 break print(cnt) ..