import sys
input = sys.stdin.readline

k = int(input())
ex_stack = []  

for _ in range(k):
    num = int(input())  

    if num == 0:  
        ex_stack.pop() # 0이 입력될 경우 스택의 가장 최근 수를 잘라내기 합니다.
                       # pop함수는 인덱스가 없을 경우 마지막 값을 제거합니다.
    else:
        ex_stack.append(num)  # 0이 아닌 경우 수를 스택에 추가

result = sum(ex_stack)

print(result)

'코딩 연습 > 백준 코드' 카테고리의 다른 글

팰린드롬수-1259.py  (0) 2023.10.18
팰린드롬수-1213.py  (0) 2023.10.18
접미사 배열-11656.py  (0) 2023.10.18
빙고-2578.py  (0) 2023.10.18
블랙잭-2798.py  (0) 2023.10.18
import sys
n_input = sys.stdin.readline
S = n_input().strip()
n_str = [S[i:] for i in range(len(S))]
n_str.sort()
for result in n_str:
    print(result)

'코딩 연습 > 백준 코드' 카테고리의 다른 글

팰린드롬수-1213.py  (0) 2023.10.18
제로-10773.py  (0) 2023.10.18
빙고-2578.py  (0) 2023.10.18
블랙잭-2798.py  (0) 2023.10.18
세로읽기-10798.py  (0) 2023.10.18
import sys

n_input = sys.stdin.readline

graph = [list(map(int, n_input().split())) for _ in range(5)]
bingo = [list(map(int, n_input().split())) for _ in range(5)]
# 입력 받은 그래프와 빙고 숫자 리스트 생성합니다.

visited = [[0] * 5 for _ in range(5)]
# 각 그래프 요소를 방문한 여부를 나타내는 이차원 리스트 생성합니다


def check(): # 빙고 개수를 확인합니다
    count = 0
       
    count += sum(all(visited[x]) for x in range(5))  # 가로 빙고 개수 확인합니다
       
    col_visited = list(map(list, zip(*visited))) # zip 함수는 Python의 내장 함수로 행과 열을 분리합니다.
    count += sum(all(col_visited[y]) for y in range(5))  # 세로 빙고 개수 확인합니다.
   
    if all(visited[i][i] for i in range(5)):
        count += 1
    if all(visited[i][4 - i] for i in range(5)):
        count += 1
    # 대각선 빙고 개수 확인합니다
   
    return count >= 3

n_count = 0
for x in bingo:
    while x:
        num = x.pop(0)
        n_count += 1
        for i in range(5):
            for j in range(5):
                if graph[i][j] == num:
                    visited[i][j] = True

        if n_count >= 5 and check():
            # 5번부터 1 bingo를 만듭니다, 그 때부터 빙고 개수 체크합니다.
            print(count)
            sys.exit(0) #프로그램을 종료하는데 사용되는 함수입니다.

 

'코딩 연습 > 백준 코드' 카테고리의 다른 글

제로-10773.py  (0) 2023.10.18
접미사 배열-11656.py  (0) 2023.10.18
블랙잭-2798.py  (0) 2023.10.18
세로읽기-10798.py  (0) 2023.10.18
수강신청-13414.py  (0) 2023.10.18
N, M = map(int, input().split())
cards = list(map(int, input().split()))

def blackjack(cards, M):
    max_sum = 0

    # 3중 for 구문을 사용하여 차례대로 3장을 가져옵니다.
    for i in range(len(cards)):
        for j in range(i + 1, len(cards)):
            # i+1을 하여 첫번째 카드 이후를 뽑습니다.
            for k in range(j + 1, len(cards)):
                card_sum = cards[i] + cards[j] + cards[k]
                # 뽑은 카드의 수를 더합니다.
                if card_sum <= M and card_sum > max_sum:
                    #넘지 않으면서 가까운 값은 이하(<=)로 표현하였습니다.
                    max_sum = card_sum
                    # card_sum을 max_sum에 갱신함으로써,
                    # max_sum은 뽑은 것 중에 가장 큰 합을 유지할 수 있습니다.
                    if max_sum == M:
                        return max_sum
                    # 가장 큰합은 M이기 때문에 M에 도달했을때 값을 도출합니다.
    return max_sum

result = blackjack(cards, M)
print(result)

 

'코딩 연습 > 백준 코드' 카테고리의 다른 글

접미사 배열-11656.py  (0) 2023.10.18
빙고-2578.py  (0) 2023.10.18
세로읽기-10798.py  (0) 2023.10.18
수강신청-13414.py  (0) 2023.10.18
암호해독기-17176.py  (0) 2023.10.18
import sys
n_input = sys.stdin.readline

def column(words):
    max_len = max(len(word) for word in words)
    # 가장 긴 단어의 길이에 맞춰야 빈공간이 생겼을 때 오류가 안나옵니다.
    result = ''
    for i in range(max_len):
        for word in words:
            if i < len(word):
                # i=[0]일 때 첫 번째 열 i=[1]일 때 두 번째 열...
                result += word[i]
    return result

words = []
for _ in range(5):
    words.append(n_input().rstrip())

print(column(words))

'코딩 연습 > 백준 코드' 카테고리의 다른 글

빙고-2578.py  (0) 2023.10.18
블랙잭-2798.py  (0) 2023.10.18
수강신청-13414.py  (0) 2023.10.18
암호해독기-17176.py  (0) 2023.10.18
요세푸스-1158.py  (0) 2023.10.18
import sys

n_input = sys.stdin.readline

m, n = map(int, n_input().split())
dict = {}

for i in range(n):
    num = n_input().strip()
    dict[num] = i

ans = sorted(dict.items(), key=lambda x: x[1])

for i in range(k):
    if i >= len(ans):
        breaks
    print([i][0])

 

'코딩 연습 > 백준 코드' 카테고리의 다른 글

블랙잭-2798.py  (0) 2023.10.18
세로읽기-10798.py  (0) 2023.10.18
암호해독기-17176.py  (0) 2023.10.18
요세푸스-1158.py  (0) 2023.10.18
이항계수  (0) 2023.10.18
import sys
n_input = sys.stdin.readline

# 첫 번째 입력: 암호문과 평문의 길이를 동일하게 하기 위해서 길이를 입력받습니다.
n = int(n_input().rstrip())

# 두 번째 입력: 암호문과 평문의 비교를 쉽게 하기 위해 공백을 기준으로 나눠 저장합니다.
s = list(map(int, n_input().rstrip().split(" ")))

# 세 번째 입력: 평문
p = n_input().rstrip()

ex_list = []
for i in p:
    if i.isupper():
        # ord() 함수는 유니코드 코드 포인트 또는 아스키 코드 정수값을 반환하는 함수입니다.
        # 파이썬 2.x에서는 기본 문자열 처리가 아스키 코드 기반이였습니다.
        # 파이썬 3.x에서는 유니코드 문자열을 기본적으로 사용합니다.
        # 'A' 문자의 유니코드 코드 포인트 또는 아스키 코드 65입니다.
        # 'a'의 유니코드 코드 포인트 또는 아스키 코드 97입니다.
        ex_list += [ord(i) - 64]  # -64를 사용해서 A의 값을 1로 치환해줍니다.
    elif i.islower():
        ex_list += [ord(i) - 70]  # -70를 사용해서 a의 값을 27로 치환해줍니다.
    else:
        ex_list += [0]  # 0 -> 띄워쓰기

# 암호문과 평문을 각각 정렬하여 비교하여 해독 가능 여부를 판단하는 부분입니다.
if sorted(s) == sorted(ex_list):  # 암호문과 평문이 같은지 비교합니다.
    print('y')  # 같다면 해독 가능한 경우입니다.
else:
    print('n')  # 다르다면 해독 불가능한 경우입니다.

'코딩 연습 > 백준 코드' 카테고리의 다른 글

세로읽기-10798.py  (0) 2023.10.18
수강신청-13414.py  (0) 2023.10.18
요세푸스-1158.py  (0) 2023.10.18
이항계수  (0) 2023.10.18
별찍기(7)-2777.py  (0) 2023.10.15
n, k = map(int, input().split())
circle = list(range(1, n + 1))
result = []
ex_except = 0

while circle:
    ex_except = (ex_except + k - 1) % len(circle)
    # 인덱스는 0부터 시작하기때문에 k-1 하였습니다.
    # 인덱스 값을 초과하여 값이 도출되지 못할 경우가 있습니다.
    # 나머지 연산자를 활용하여 배열크기를 초과하지 못하게 했습니다.
    result.append(circle.pop(ex_except))
    # pop 함수는 인덱스 값을 가져와 삭제합니다.(잘라내기 효과와 비슷)
    # cf. remove 함수는 값을 직접 입력해서 삭제합니다.
print("<", end="")
for i in range(n - 1):
    print(result[i], end=", ")
print(f"{result[-1]}>")

 

'코딩 연습 > 백준 코드' 카테고리의 다른 글

수강신청-13414.py  (0) 2023.10.18
암호해독기-17176.py  (0) 2023.10.18
이항계수  (0) 2023.10.18
별찍기(7)-2777.py  (0) 2023.10.15
방 번호-1475.py  (0) 2023.10.15
import math
import sys
n_input = sys.stdin.readline
def num(N, K):
    return math.comb(N, K) # 이항 계수-> 순서 없이 조합으로 뽑는 방식입니다.

N, K = map(int, n_input().strip().split())
print(num(N, K))

 

'코딩 연습 > 백준 코드' 카테고리의 다른 글

암호해독기-17176.py  (0) 2023.10.18
요세푸스-1158.py  (0) 2023.10.18
별찍기(7)-2777.py  (0) 2023.10.15
방 번호-1475.py  (0) 2023.10.15
미아 노트-20114.py  (0) 2023.10.15
import sys
n_input = sys.stdin.readline().rstrip()
def star(n):
    # 중앙배열을 하기 위해, 좌측 부분에 공백을 만들고 별이 생성되게 하였습니다.
    # 별은 (해당 줄 번호 x2)-1의 형태이며, 공백은 해당 줄 번호에서 i만큼 감소 하는 형태입니다.
    # 반복이 되기 때문에, for 구문으로 나타내었습니다.
    # 상단  
    for i in range(1, n + 1):
        spaces = " " * (n - i)     # 공백
        stars = "*" * (2 * i - 1)  # 별
        print(spaces + stars)
    # 절반을 기준으로 상단과 하단을 구분하였습니다.
    # 하단
    for i in range(n - 1, 0, -1):
        spaces = " " * (n - i)
        stars = "*" * (2 * i - 1)
        print(spaces + stars)


n = int(n_input)
star(n)

'코딩 연습 > 백준 코드' 카테고리의 다른 글

요세푸스-1158.py  (0) 2023.10.18
이항계수  (0) 2023.10.18
방 번호-1475.py  (0) 2023.10.15
미아 노트-20114.py  (0) 2023.10.15
멘토와 멘티-26265.py  (0) 2023.10.15

+ Recent posts