Programming 285

[백준] #4880 다음수 python

https://www.acmicpc.net/problem/4880 4880번: 다음수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 수열의 연속하는 세 정수 a1, a2, a3이 한 줄에 주어진다. (-10,000 < a1, a2, a3 < 10,000) a1, a2, a3은 서로 같지 않다. 입력의 마지막 www.acmicpc.net 📕 설명 📕 등차수열인지 등비수열인지 공차를 통해 판별하고 공차가 존재하지 않는다면 공비를 갖는 것이므로, 아래와 같이 AP, GP를 나누었다 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 while True: a,b,c = map(int, input().split()) if a == 0 and b == 0 and c == 0: break if b - a == c -..

[백준] #4504 배수 찾기 python

https://www.acmicpc.net/problem/4504 4504번: 배수 찾기 첫째 줄에 n이 주어진다. 다음 줄부터 한 줄에 한 개씩 목록에 들어있는 수가 주어진다. 이 수는 0보다 크고, 10,000보다 작다. 목록은 0으로 끝난다. www.acmicpc.net 📕 설명 📕 수를 직접 나누어 배수인지 아닌지 판별하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 T = int(input()) while True: N = int(input()) if N == 0: break if N % T == 0: print(N,"is a multiple of",str(T)+".") elif N % T != 0: print(N,"is NOT a multiple of",str(T)+".")

[백준] #4447 좋은놈 나쁜놈 python

https://www.acmicpc.net/problem/4447 4447번: 좋은놈 나쁜놈 비키니시티에는 초능력을 가진 수퍼 히어로들로 바글바글하다. 스폰지밥과 패트릭은 주어진 문자열로 좋은놈과 나쁜놈을 골라내려 한다. 스폰지밥: 우와, 문자열에서 강한 힘이 느껴지는데! www.acmicpc.net 📕 설명 📕 g와 b의 개수를 세어 g이면 cnt 값을 그만큼 더하고 b이면 cnt 값을 그만큼 뺀다. 그리고 cnt 값에 따라 GOOD, A BADDY, NEUTRAL을 판단한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 from collections import Counter N = int(input()) for _ in range(N): S = input() cnt = 0 for i in Counter(S): if..

[백준] #4493 가위 바위 보? python

https://www.acmicpc.net/problem/4493 4493번: 가위 바위 보? 첫째 줄에는 테스트 케이스의 개수 t(0 < t < 1000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 가위 바위 보를 한 횟수 n(0 < n < 100)이 주어진다. 다음 n개의 줄에는 R, P, S가 공백으로 구분되어 주어 www.acmicpc.net 📕 설명 📕 가위, 바위, 보 게임에 대해 각각의 값을 경우에 따라 계산한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 T = int(input()) for _ in range(T): N = int(input()) vic_a = 0 vic_b = 0 for i in range(N): a, b = map(str, input().split()) if a == b: cont..

[백준] #3047 ABC python

https://www.acmicpc.net/problem/3047 3047번: ABC 첫째 줄에 세 수 A, B, C가 주어진다. 하지만, 순서는 A, B, C가 아닐 수도 있다. 세 수는 100보다 작거나 같은 자연수이다. 둘째 줄에는 A, B, C로 이루어진 세 글자가 주어지며, 이 순서대로 출력하면 www.acmicpc.net 📕 설명 📕 max와 min의 값을 따로 저장한 후 중앙값을 따로 남겨두고, 입력 받은 순서대로 받는다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 xyz = list(map(int, input().split())) order = input() res = [] max_ = max(xyz) min_ = min(xyz) xyz.remove(max(xyz)) xyz.remove(min(xyz))..

[백준] #3035 스캐너 python

https://www.acmicpc.net/problem/3035 3035번: 스캐너 첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고, ZR과 ZC는 1과 5 사이의 정수이다. 다음 R개 줄에는 신문 기사가 주어진다. www.acmicpc.net 📕 설명 📕 행렬의 개수를 세어 굳이 출력을 만들지 않고 list에 넣어 출력이 행렬처럼 나오도록 구현하였습니다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 R, C, ZR, ZC = map(int, input().split()) res = [] for _ in range(R): li = input() result = "" for i in li: result += i * ZC for i in range(ZR): res.append(resul..

[백준] #2966 찍기 python

https://www.acmicpc.net/problem/2966 2966번: 찍기 상근이, 창영이, 현진이는 역사와 전통을 자랑하는 Sogang ACM-ICPC Team에 가입하려고 한다. 하지만, 가입하려고 하는 모든 지원자는 C언어 필기시험을 통과해야 한다. 이들은 C언어를 할 줄 모른다. www.acmicpc.net 📕 설명 📕 문자열 slice를 통해 Adrian, Bruno, Goran의 값을 구성합니다. 그리고 해당 값들을 정답인 S와 비교하여 맞은 수를 비교합니다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) S = input() Adrian = 'ABC'*(N//3)+'ABC'[:N%3] Bruno = 'BABC'*(N//4) + 'BABC'[:N%4] Goran = 'CC..

[백준] #2947 나무 조각 python

https://www.acmicpc.net/problem/2947 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 📕 설명 📕 반복문을 통해 list가 정렬 될 때까지 해당 과정을 반복한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N_li = list(map(int, input().split())) while True: check = True for i in range(1,5): if N_li[i-1] > N_li[i]: tmp = N_li[i] N_li[i] = N_li[i-1] N_li[i-1] = tmp check = False prin..

[백준] #2857 FBI python

https://www.acmicpc.net/problem/2857 2857번: FBI 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. www.acmicpc.net 📕 설명 📕 "FBI" 문자열이 해당 주어진 문자열에 포함된다면 해당 번째를 result list에 넣고 아니라면 넣지 않는다. result list의 길이가 0이라면 없는 것이므로 "HE GOT AWAY!"를 출력한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 result = [] for i in range(1,6): S = input() if "FBI" in S: result.append(i) if len(result) == 0: print("HE GOT AWAY!")..

[백준] #2846 오르막길 python

https://www.acmicpc.net/problem/2846 2846번: 오르막길 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르 www.acmicpc.net 📕 설명 📕 list의 부분수열을 구하면 되는 것으로, 각각의 차이를 다 넣어둔 다음, 그 차이가 0이하이면 이것은 오르막길이 아닌 것이다. 따라서 0이하 전까지의 값들을 다시 List에 넣고 오르막길인 양수의 합들을 다 더하여 최댓값을 출력하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) N_list = list(map(int, input().split())) tmp = 0 tmp_l..