728x90
반응형

프로그래밍 276

[Python] 백준 1620번 - 나는야 포켓몬 마스터 이다솜

문제https://www.acmicpc.net/problem/1620표준 입력을 위한 sys 모듈 추가.input 함수를 표준 입력 함수로 대체.두 정수 입력받음.비어있는 딕셔너리 객체 생성.import sysinput = sys.stdin.readlinen, m = map(int, input().split())dic = dict() 입력받은 첫 번째 정수만큼 반복.- 문자열을 입력받음.- 반복에 사용되는 숫자(i) + 1을 키로, 입력받은 문자열을 벨류로 딕셔너리에 저장.- 반대로 입력받은 문자열을 키로, 반복에 사용되는 숫자(i) + 1을 벨류로 딕셔너리에 저장.for i in range(n): name = input().strip() dic[str(i+1)] = name dic[na..

코딩/공부 2024.09.12

[Python] 백준 1436번 - 영화감독 숌

문제https://www.acmicpc.net/problem/1436정수 하나 입력.666을 포함한 숫자의 개수를 세기 위한 변수 생성.1씩 숫자를 증가시킬 변수 생성.n = int(input())count = 0num = 1 무한 루프.- 만일 해당 숫자를 문자열로 변환하였을 때 666을 포함하고 있는 문자열이라면-- 개수 증가.- 개수가 입력한 정수와 동일하다면-- 해당 숫자 출력.-- 반복 종료.- 숫자 1 증가.while True: if '666' in str(num): count += 1 if count == n: print(num) break num += 1 전체 코드.n = int(input())count = 0num = 1while Tr..

코딩/공부 2024.09.12

[Python] 백준 1431번 - 시리얼 번호

공부https://www.acmicpc.net/problem/1431 키보드로부터 정수 하나를 입력받고, 입력받은 정수만큼 문자열을 입력받아 리스트에 저장.해당 리스트를 아래와 같은 기준으로 정렬.1. 길이 짧은 것을 먼저 오도록 설정.2. filter를 이용한 각 글자 중 숫자인 것을 찾아 합을 구하고, 그 합이 작은 숫자를 먼저 오도록 설정.3. 사전순 정렬 (숫자  전체 코드.print(*sorted([input() for _ in range(int(input()))], key=lambda x: (len(x), sum(list(map(int, filter(lambda a: a.isdigit(), x)))), x)), sep='\n')

코딩/공부 2024.09.12

[Python] 백준 1251번 - 단어 나누기

문제https://www.acmicpc.net/problem/1251 문자열 입력받음.'z'가 50개로 이루어진 문자열 생성.- 문자열 대조를 위한 변수.- 사전순으로 가장 앞서는 단어를 찾기 위한 변수. (최솟값)s = input()r = 'z' * 50 입력받은 문자열을 1번째부터 끝 전까지 반복(i).- i+1번째부터 끝까지 반복.-- 슬라이싱을 통해 문자열을 3분할하고, 해당 문자열을 역순으로 뒤집었을 때 결과를 이어붙여 하나의 문자열로 생성.-- 갖고있는 변수의 값보다 사전순 앞이라면 대체.결과 출력.for i in range(1, len(s)-1): for j in range(i+1, len(s)): temp = s[i-1::-1] + s[j-1:i-1:-1] + s[:j-1..

코딩/공부 2024.09.12

[Python] 백준 1003번 - 피보나치 수열

문제https://www.acmicpc.net/problem/1003피보나치 수열을 재귀로 구현하였을 때 0과 1이 각각 몇 번 출력되는지 찾는 문제.n이 3 이상인 경우부터 이전 두 항의 합으로 구할 수 있음.0 or 1 \ n01234567801011235813101123581321 표준 입력을 위한 sys 모듈 추가.input 함수를 표준 입력 함수로 대체. 테스트케이스 수 입력.0이 나온 횟수와 1이 나온 횟수를 2차원 배열(리스트)로 표현.n의 최대가 40이하이므로, 2행 41열로 생성. 모두 1로 초기화.0행은 0의 개수, 1행은 1의 개수를 저장.[0][0]과 [1][1]에 1로 초기화.import sysinput = sys.stdin.readlinet = int(input())arr = [..

코딩/공부 2024.09.12

[Python] 백준 10814번 - 나이순 정렬

문제https://www.acmicpc.net/problem/10814  표준입력을 위해 sys모듈 추가.input 함수를 표준입력 함수로 대체.정수 하나 입력.입력받은 정수만큼 문자열을 입력받고, 입력받은 문자열을 공백 기준으로 잘라줌. 자른 리스트 맨 뒤에 입력받은 순서에 해당하는 값을 추가로 저장. ([0]: 나이, [1]: 이름, [2]: 입력받은 순서)해당 정보를 리스트에 저장.저장된 정보를 나이와 입력받은 순서를 기준으로 오름차순 정렬함.결과 출력.import sysinput = sys.stdin.readlinen = int(input())result = sorted([input().split() + [i] for i in range(n)], key=lambda x: (int(x[0]), x[..

코딩/공부 2024.08.17

[Python] 백준 4153번 - 직각삼각형

문제https://www.acmicpc.net/problem/4153  표준입력을 위해 sys모듈 추가.input 함수를 표준입력 함수로 대체.무한 루프 사용.세 개의 정수를 입력받고, 오름차순으로 정렬한 뒤 각각 a, b, c 순으로 저장.a^2 + b^2 이 c^2이 되는지 확인하여 결과 출력.import sysinput = sys.stdin.readlinewhile True: a, b, c = sorted(map(int, input().split())) if a == 0: break print('right' if a * a + b * b == c * c else 'wrong')

코딩/공부 2024.08.17

[Python] 백준 2609번 - 최대공약수와 최소공배수

문제https://www.acmicpc.net/problem/2609  최대공약수(gcd)와 최소공배수(lcm)를 구하기 위한 함수 제작.유클리드 호제법을 사용하여 구함. 두 정수를 입력받고 최대공약수를 구한 뒤 변수에 저장하고, 최소공배수를 구할 때 이미 구한 최대공약수를 활용하여 최소공배수를 구함.def gcd(a, b): while b: a, b = b, a % b return adef lcm(a, b): return (a * b) // gn1, n2 = map(int, input().split())g = gcd(n1, n2)print(g, lcm(n1, n2), sep='\n')

코딩/공부 2024.08.17

[Python] 백준 1018번 - 체스판 다시 칠하기

공부https://www.acmicpc.net/problem/1018 초기 체스판 크기에 해당하는 두 정수 입력받음.초기 체스판에 해당하는 문자열을 입력받아 리스트에 저장함.검정색으로 시작할 경우에 대한 문자열과 흰색으로 시작할 경우에 대한 문자열 변수 생성.검정색으로 시작하는 체스판과 흰색으로 시작하는 체스판에 해당하는 리스트 변수 생성.row, col = map(int, input().split())board = [input() for _ in range(row)]bs, ws = 'BW', 'WB'b_board = []w_board = [] 반복문을 이용하여 두 체스판 리스트에 문자열을 각각 저장.b_toggle이 True인 경우- 검정색 체스판에 검정색으로 시작하는 문자열 저장.- 흰색 체스판에 흰..

코딩/공부 2024.08.17
728x90
반응형