정렬
페이지
미리보기
자료 구조연결 리스트스택
자세히 보기
백준 5397번
import sys
input = sys.stdin.readline

for _ in range(int(input())):
    mainStack = [] # 메인 키입력 저장
    subStack = []  # 커서 이동 처리 임시 스택

    keyInput = input().rstrip()  # 키입력
    for key in keyInput:
        if key == '<':                          # 오른쪽 커서 이동의 경우
            if len(mainStack) > 0:              # 메인에 값이 있다면
                subStack.append(mainStack.pop())  # 서브스택으로 이동
        elif key == '>':                        # 왼쪽 커서 이동의 경우
            if len(subStack) > 0:               # 서브스택으로 이동된 값이 있다면
                mainStack.append(subStack.pop())  # 다시 메인으로 이동
        elif key == '-':                        # 백스페이스 입력의 경우
            if len(mainStack) > 0:              # 메인의 값이 있다면
                mainStack.pop()                 # 상단 값만 빼버림
        else:
            mainStack.append(key)         # 그외 입력은 메인에 삽입
    while len(subStack) > 0:              # 입력 반복 이후 서브스택에 값이 남아 있는 경우
        mainStack.append(subStack.pop())  # 메인으로 이동

    for i in mainStack:               # 메인 출력
        print(i, end='')
    print()
수학유클리드 호제법정수론
자세히 보기
백준 1850번
import sys
input = sys.stdin.readline

# 유클리드 호제법으로 최대 공약수 구하는 함수
def gcd(a, b):
    big = max(a, b)         # 큰 수
    small = min(a, b)       # 작은 수
    if small == 0:          # 작은 수가 0이면
        return big          # 큰 수 리턴
    elif big % small == 0:  # 큰 수가 작은 수로 나누어 떨어지면
        return small        # 작은 수 리턴
    else:
        return gcd(small, big%small) # 작은 수가 0이 될 때 까지 재귀하고 리턴값 리턴

a, b = map(int, input().split())
oneNum = gcd(a, b) # 입력 받은 수의 최대 공약수가 1의 갯수로 바꿨을 때 최대공약수의 1의 갯수임.
print("1"*oneNum)