Python 390

[baekjoon] 백준 10820번(파이썬): 문자열 분석

문제 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 알고리즘 - 문자열이 몇 번 입력받는지 모르기에 while문을 통해 반복한다. - 리스트를 입력받고 문자를 반복하여 어떤 문자인지 확인하여 카운트한다. - 리스트에 아무것도 입력받지 못했다면 반복문을 멈춘다. 코드 import sys while True: n = list(map(str, sys.stdin.readline().rstrip("\n"))) upper = 0 lower = 0 num = 0 blank = 0 # 리스트 안에 아무것도 없으면 멈춘다..

CodingTest/Baekjoon 2021.09.13

[baekjoon] 백준 10809번(파이썬): 알파벳 찾기

문제 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 알고리즘 - 아스키 코드 변환을 활용하여 문제를 수행한다. - 입력받은 리스트 안에 아스키 코드로 변환한 값이 있으면 그 값의 인덱스 위치를 결과 리스트에 추가한다. - 입력받은 리스트 안에 아스키 코드로 변환한 값이 없다면 -1을 결과 리스트에 추가한다. 코드 import sys s = list(map(str, sys.stdin.readline().strip())) res = [] for i in range(26): # s 안에 다음 아스키 코..

CodingTest/Baekjoon 2021.09.13

[baekjoon] 백준 10808번(파이썬): 알파벳 개수

문제 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 알고리즘 - 입력받은 문자의 알파벳 개수를 확인한다. - 알파벳 개수만큼 반복하여 리스트에 아스키 코드로 바꾼 값의 알파벳 개수를 추가한다. 코드 import sys from collections import Counter # collections 모듈에 Counter 클래스 사용 s = list(map(str,sys.stdin.readline().strip())) c = Counter(s) # 알파벳 개수를 확인 res = [] # 알파벳 개수만큼 반복 for i in range(26): # 리스트에 아스키 코드로 바꾼 값의 알파벳 개수를 추가 res..

CodingTest/Baekjoon 2021.09.12

[baekjoon] 백준 1935번(파이썬): 후위 표기식2

문제 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 알고리즘 - 입력받은 문자를 대문자인지 확인하여 연산자인지 피연산자인지 확인한다. - 피연산자이면 아스키코드를 통해 숫자를 입력받는다. - 연산자일 경우 스택에 맨 위에 있는 두 숫자를 팝하고 eval() 함수를 통해 연산해준다. - 스택에 쌓인 하나의 숫자를 소수 둘째 자리까지 출력한다. 코드 import sys n = int(sys.stdin.readline()) c = list(map(str, sys.stdin.readline().strip..

CodingTest/Baekjoon 2021.09.11

[baekjoon] 백준 17299번(파이썬): 오등큰수

문제 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 알고리즘 - collection 모듈인 Counter 클래스를 사용 - 인덱스를 통해 오등큰수를 확인 위 문제를 풀기 전에 다음 문제를 먼저 풀면 이해하기 쉬울 것 같다. [baekjoon] 백준 17298번(파이썬): 오큰수 문제 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 알고리즘..

CodingTest/Baekjoon 2021.09.10

[baekjoon] 백준 17298번(파이썬): 오큰수

문제 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 알고리즘 - 오큰수를 인덱스로 확인한다. - 오큰수가 아니면 오큰수 리스트에 오큰수가 아닌 인덱스를 입력받는다. - 비교한 수가 오큰수이면 해당 값을 팝하고 그 자리에 오큰수를 입력한다. 코드 import sys n = int(sys.stdin.readline()) a = list(map(int, sys.stdin.readline().split())) cnt = [0] # 오큰수를 0번째 인덱스부터 확인한다. res = [-1] * n for i in range(1, ..

CodingTest/Baekjoon 2021.09.09

[baekjoon] 백준 10799번(파이썬): 쇠막대기

문제 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 알고리즘 - 반복문을 통해 모든 괄호를 탐색한다. - "(" 괄호는 스택에 추가한다. - 이전 괄호가 ")" 라면 막대기에 마지막 부분을 레이저로 자른 것으로 +1 해준다. - 현재 괄호가 ")"라면 레어저의 앞에 막대기의 개수를 모두 한 번씩 자른 것으로 스택의 길이를 더해준다. 코드 import sys n = list(map(str, sys.stdin.readline().strip())) stack = [] res = 0 # 모든 괄호를 탐색한다. for i in ..

CodingTest/Baekjoon 2021.09.08

[baekjoon] 백준 10951번(파이썬): A+B - 4

문제 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 알고리즘 - try- except 문을 통해 반복문을 멈춰준다. 코드 import sys while True: try: a, b = map(int, sys.stdin.readline().split()) print(a + b) except: break github GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법 내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub. github.com

CodingTest/Baekjoon 2021.09.07

[baekjoon] 백준 1110번(파이썬): 더하기 사이클

문제 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 알고리즘 - 두 정수를 더할 때는 int로 더한다. - 두 정수를 붙일 때는 str으로 붙인다. 코드 import sys n = str(sys.stdin.readline()) res = [] cnt = 0 print(n) # 입력받은 정수가 두자릿수이면 1의 자리 수의 0을 추가한다. if len(n) == 2: n = "0" + n while True: # 새로운 수를 리스트에 추가한다. res.append(n) # 두 정수를 더한다. te..

CodingTest/Baekjoon 2021.09.07

[baekjoon] 백준 17413번(파이썬): 단어 뒤집기 2

문제 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 알고리즘 - 입력에 따라 명령을 수행한다. 코드 import sys s = list(map(str, sys.stdin.readline().strip())) res = "" word = "" reverse = True for c in s: if c == '': reverse = True res += (word + '>') word = "" elif c == ' ': res += word + c word = "" elif reve..

CodingTest/Baekjoon 2021.09.07