백준 198

[알고리즘] 백준 1158 파이썬 - 요세푸스 문제

1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 문제풀이 n,k = map(int,input().split..

[알고리즘] 백준 10867 파이썬 - 중복 빼고 정렬하기

10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다. 문제풀이 int(input()) List = list(map(int,input().split())) a=[] for i in List: if(i not in a): a.append(i) a.sort() print(*a) - 입력받은 값이 a 리스트에 있지 않으면 추가한다. - a 리스트를 오름차순으로 정렬한다. - a 리스트를 한 줄에 출력한다.

[알고리즘] 백준 1181 파이썬 - 단어 정렬

1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 문제풀이 import sys input = sys.stdin.readline A=[] for _ in range(int(input())): a = input().rstrip() if a not in A: A.append(a) A.sort() A.sort(key=len) for i in A: pri..

[알고리즘] 백준 10815 파이썬 - 숫자 카드

10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 문제풀이 import sys input = sys.stdin.readline N=int(input()) List=list(map(int,input().split())) #이분 탐색을 위해 정렬 List.sort() M=in..

[알고리즘] 백준 10820 파이썬 - 문자열 분석

10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 문제 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다. 문제풀이 while True: try: a=0 b=0 c=0 d=0 X=input() for i in X: if(i.islower()): a+=1 elif(i.isupper()): b+=1 elif(i.isdigit()): c+=1 elif(i.isspace()..

[알고리즘] 백준 9093 파이썬 - 단어 뒤집기

9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 문제풀이 #1번 답안 import sys N = int(sys.stdin.readline()) for i in range(N): List = list(map(str,sys.stdin.readline().split())) List2=[] for j in List: a="" for k in j: a= k..

[알고리즘] 백준 4375 파이썬 - 1

4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 문제 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. 문제풀이 while True: try: n = int(input()) except: break x="1" while True: X = int(x) if(X%n==0): print(len(x)) break else: x +="1" - 입력횟수가 정해지지 않았기에 while문을 사용하여 값이 멈출 때까지 입력 받는다. 이후 1로만 이루어진 값을 입력받은 값으로 나누었을 때 나누어 ..

[알고리즘] 백준 25576 파이썬 - 찾았다 악질

25576번: 찾았다 악질 구수한 욕설과 귀여운 동남권 사투리가 매력인 인기 스트리머 랄파는 오늘도 열심히 게임 방송을 한다. 랄파는 과거 게임 최상위 랭커를 달성했던 빛나는 시절이 있었으나, 현재는 실력이 많이 www.acmicpc.net 문제 구수한 욕설과 귀여운 동남권 사투리가 매력인 인기 스트리머 랄파는 오늘도 열심히 게임 방송을 한다. 랄파는 과거 게임 최상위 랭커를 달성했던 빛나는 시절이 있었으나, 현재는 실력이 많이 줄어들어 매일매일 악질 시청자의 훈수와 싸우고 있다. 랄파 방송을 오랫동안 봐온 당신은, 어느 날 한 가지 엄청난 사실을 발견했다. 바로 악질 시청자들이 랄파와 사이가 좋지 않은 스트리머들을 다수 구독하고 다닌다는 사실이었다. 클린한 랄파의 방송을 위해 당신은 직접 정의를 행하고..

[알고리즘] 백준 22341 파이썬 - 사각형 면적

22341번: 사각형 면적 가로, 세로 길이가 모두 N인 커다란 종이가 주어져 있다. 좌표 (X, Y)는 종이의 가장 왼쪽 위 점을 (0, 0) 으로 하고, (0, 0)에서 세로로 거리 X, 가로로 거리 Y 를 이동한 점을 의미한다. 따라서, 종이의 www.acmicpc.net 문제 가로, 세로 길이가 모두 N인 커다란 종이가 주어져 있다. 좌표 (X, Y)는 종이의 가장 왼쪽 위 점을 (0, 0) 으로 하고, (0, 0)에서 세로로 거리 X, 가로로 거리 Y 를 이동한 점을 의미한다. 따라서, 종이의 가장 오른쪽 아래 점의 좌표는 (N, N)이 된다. C개의 점이 주어진다. 점들의 좌표는 모두 양의 정수이고, 순서대로 1부터 C까지 번호가 매겨진다. 두 개 이상의 점이 같은 좌표를 가질 수도 있다. 번..

[알고리즘] 백준 25373 파이썬 - 벼락치기

문제 부산사이버대학교에 다니는 대희는 강의 영상 보는 것을 매일 미뤘다. 오늘은 중간고사가 일주일 남은 날이다. 대희는 더 이상 미루면 큰일이 날 것 같아서 오늘부터 밀린 영상을 보기로 했다. 그런데 아직 정신을 못 차린 대희는 영상을 본 다음 날은 그 전날보다 영상을 적게 본다. 이때 영상을 모두 듣기 위해 첫날 들어야 하는 영상의 개수 중 가장 작은 값을 출력하자. 영상을 하나도 보지 않은 날부터는 계속 영상을 보지 않는 것에 유의하자. 문제풀이 N = int(input()) x=0 if(N>=28): print((N-1)//7+4) quit() else: for i in range(1,8): if(N*2