백준 95

백준 1541번 잃어버린 괄호 파이썬

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 내 답안 x = input().rstrip().split('-') result = [sum(map(int, i.split('+'))) for i in x] print(result[0] - sum(result[1:])) REVIEW 문제를 보면서 어떻게 하면 잘 계산을 할 수 있을까 고민을 하였다. 내가 생각한 순서는 이렇다. 1번 "-" 단위로 끊어서 리스트를 만든다. -> ["55", "5..

BOJ/Python 2022.12.02

백준 10809번 알파벳 찾기 파이썬

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net x = input() result = [-1]*26 # 전체 -1 for i in x: c = ord(i) - 97 result[c] = x.index(i) # 알파벳 처음 등장 위치 for i in result: print(i, end = ' ') 처음 for 문을 통해 구현을 할 수 있으면 간단하게 생각할 수 있는 문제였다. 여기서 ord 함수는 문자 --> 유니코드로 변경해 주는..

BOJ/Python 2022.01.29

백준 23813번 회전 파이썬

https://www.acmicpc.net/problem/23813 23813번: 회전 정수 $N$이 주어질 때, $N$의 일의 자리 숫자를 떼서 제일 앞자리 왼쪽에 이어 붙힌 것을 $N$의 회전이라고 정의하자. 예를 들어, 12345의 회전은 51234가 된다. 3의 회전은 3이 된다. 이렇게 회전을 계 www.acmicpc.net N = input() x = 0 result = 0 for i in range(len(N)): x += int(N[i]) for i in range(len(N)): #15 + 150 + 1500 + 15000 + 150000 result += (x * (10**i)) print(result) 어떤식으로 돌아가는 패턴만 알면 무지 간단한 문제이다.

BOJ/Python 2022.01.15

백준 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 이 문제는 시간제한이 1000ms이기 때문에 시간 복잡도를 잘 활용해야 한다. 문제를 보자마자 이진 탐색이라는 걸 알았지만 혹시 몰라서 간단하게 코딩을 했었다. N = int(input()) NA = list(map(int, input().split())) M = int(input()) MA = list(map(int, input().split())..

BOJ/Python 2022.01.14

백준 18406번 럭키 스트레이트 파이썬

https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net x = input() half = len(x)//2 left = 0 right = 0 for i in range(0, half): left += int(x[i]) for i in range(half, len(x)): right += int(x[i]) if left == right: print("LUCKY") else: print("READY") 무조건 짝수 입력이기 때문에 그냥 가운데 기준으로 짤라 왼쪽과 오른쪽 수들의 합이 같으면 LUCKY 출력..

BOJ/Python 2022.01.12

백준 10866번 덱 파이썬

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys from collections import deque d = deque() for i in range(int(sys.stdin.readline())): x = sys.stdin.readline().split() if x[0] == "push_back": d.append(x[1]) elif x[0] == "push_front": d.appendleft(x[1]) ..

BOJ/Python 2022.01.11

백준 9506번 약수들의 합 파이썬

https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net while True: x = int(input()) if x == (-1): break else: lst = [] cnt = 0 for i in range(1, x): # 약수 다 찾기 if x % i == 0: lst.append(i) for i in lst: # 약수 더한값 계산 cnt += i if cnt == x: print(f'{x} = 1',end = "") for i in ra..

BOJ/Python 2022.01.10

백준 1453번 피시방 알바 파이썬

https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net N = int(input()) x = list(map(int, input().split())) x.sort()# point pre = 0 cnt = 0 for i in x: if i == pre: cnt += 1 pre = i print(cnt) 파이썬에는 쉽게 정렬할 수 있는 sort 기능이 있다. 세번째 줄의 sort를 안써서 처음엔 틀렸다. 정렬을 안쓴다면 64 7 8 64 이럴때 다른 값이 나오는 경우가 발생한다.

BOJ/Python 2022.01.08

백준 1302번 베스트셀러 파이썬

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net lst = [] for i in range(int(input())): lst.append(input()) x = list(set(lst)) # 중복될시 사전순 x.sort() Max = 0 name = '' for i in x: y = lst.count(i) # 분류 if y > Max: Max = y name = i print(name) 핵심은 4번째 줄에 세트로 묶은다음 리스트로 다시 ..

BOJ/Python 2022.01.07

백준 11557번 Yangjojang of The Year 파이썬

https://www.acmicpc.net/problem/11557 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net for i in range(int(input())): name = '' Max = 0 for i in range(int(input())): x, y = input().split() y = int(y) if y > Max: name = x Max = y print(name) 숫자만 비교하여 최댓값 구하듯이 알고리즘을 비슷하게 짰다.

BOJ/Python 2022.01.06
반응형
목차(index)