백준 8

[백준코딩_파이썬] 10250번_ACM 호텔

[Python_ACM 호텔] 📢 문제 📢 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모든 인접한 두 방 사이의 거리는 같은 거리(거리 1)라고 가정하고 호텔의 정면 쪽에만 방이 있다고 가정한다. 방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다. 손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다. 다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다. 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. ..

STUDY/Algorithm 2022.09.28

[백준코딩_파이썬] 2869번_달팽이는 올라가고싶다

[Python_달팽이는 올라가고싶다] 📢 문제 📢 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. ❗아이디어 - 달팽이가 올라가야 하는 높이를 하루에 올라가는 높이로 나눈 나머지를 구한다. import sys A, B, V = map(int, sys.stdin.readline().split()) if (V-B) % (A-B) == 0: print((V-B) // (A-B)) elif (V-B) % (A-B) < A-B: print((V-B) // (A-..

STUDY/Algorithm 2022.09.26

[백준코딩_파이썬] 1316번_그룹 단어 체커

[Python_그룹 단어 체커] 📢 문제 📢 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. ❔그룹 단어 - 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. ❗아이디어 - 연속하지 않은 동일한 문자가 나타나는 경우를 구한다. import sys num = int(sys.stdin.readline()) count = 0 for i in range(num): word = sys.stdin.readline() cnt = 0 for j in set(word): li = [index for index,value in enumerate(word) if value == j] if len(li) != 1: for n in range(len(li)-1):..

STUDY/Algorithm 2022.04.03

[백준코딩_파이썬] 2581번_소수의 합과 최솟값

[Python_소수] 소수의 합과 최솟값 구하기 📢 문제 📢 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. ❗아이디어 - 약수의 갯수를 구하여 소수를 구한다. import sys M = int(sys.stdin.readline()) N = int(sys.stdin.readline()) score_li = [] for num in range(M, N+1): li = [] for i in range(1, num+1): if num % i == 0: li.append(i) else: pass if len(li) == 2: score_li.append(num) if len(score_li) == 0: print(-1) els..

STUDY/Algorithm 2022.03.30

[백준코딩_파이썬] 2893번_설탕배달

[Python_설탕배달] 📢 문제 📢 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 최대한 적은 봉지를 들고 가려고 한다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. ❗아이디어 - 최대의 5kg 봉지의 갯수를 먼저 구한 뒤 3kg 봉지의 갯수를 구한다. import sys N = int(sys.stdin.readline()) li = [] for i in range(N // 5 + 1): if (N - 5 * i) % 3 == 0: li.append(i) if len(li) == 0: print(-1) else: f = max(li) t = (N - 5 * f) // 3 print(f + t) - N을 5로 나눈..

STUDY/Algorithm 2022.03.28

[백준코딩_파이썬] 10951번_A+B / 종결규칙이 없는경우

[Python_A+B] 종결규칙이 없는 경우 A+B 구하기 📢 문제 📢 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램 작성하기 ❗아이디어 - try~ except 를 사용하여 입력값이 없거나 유효하지 않은 경우 자동 종료한다. result = [] while True : try : A, B = map(int, input().split()) print(A+B) except : break; - while로 반복문을 실행한다. - input과 split을 이용하여 입력받은 문자를 공백을 기준으로 나눈다. - map으로 나눈 문자를 정수(int)로 변환시켜 A와 B에 할당한다. - 입력 값이 없거나 유효하지 않은 경우 except(예외)를 실행시켜 반복을 멈춘다. 🔆백준 코딩 10951번🔆 👉e..

STUDY/Algorithm 2022.03.26

[백준코딩_파이썬] 8958번_OX 퀴즈

[Python_OX퀴즈] OX 퀴즈 점수 구하기 📢 문제 📢 OX 퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램 작성하기 (문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.) ❗아이디어 - "O"가 연속된 값이면 score를 1씩 증가시키고 연속되지 않은 경우 score를 1로 초기화 한 후 빈 배열에 넣는다. - 점수가 들어간 배열의 합을 구한다. 1. j번째 요소가 연속된 값인지 확인하기 result = list(input()) # 정답 (O,X) score = 0 # score 초깃값 li = [] # score 추가할 빈 배열 정의 for j in range(len(result)): # result의 각 요소 확인 if result[j] == "O": # j번째 요소..

STUDY/Algorithm 2022.03.24

[백준코딩_파이썬] 1065번_한수 개수 구하기

[Python_한수] 한수의 갯수 출력하기 ❔한수 - 각 자리가 등차수열을 이루는 수. 📢 문제 📢 양의 정수 N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램 작성하기 ❗아이디어 - 한수 구하는 함수 정의 : 모든 수가 등차수열인지 확인하기 위해서 첫 번쨰, 두 번째 숫자의 등차수열 식을 구한 후 나머지 값이 그에 맞는지 확인한다. - 정의한 함수로 N이하의 값을 출력한다. 1. 한수 구하는 함수 정의하기 # 한수 구하는 함수 정의 def h(x): if x < 10: return x else: a = str(x) d = int(a[1]) - int(a[0]) # 공차 number = "" for n in range(len(a)): # 등차 수열 확인 if i..

STUDY/Algorithm 2022.03.09