방명록
- [알고리즘][파이썬] 백준_10828_스택2021년 12월 27일 22시 19분 01초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
https://www.acmicpc.net/problem/10828
5개의 명령어가 있고,
그 명령어 중 N개를 입력하면,
그에 맞는 결과가 순차적으로 최종 출력되어야 한다.
globals 함수 이용(맞았습니다)
# globals 함수 이용(결과: 맞았습니다!) stack = [] def push(n): stack.append(n) def pop(): if len(stack) == 0: rst.append(-1) else: rst.append(stack.pop()) def size(): rst.append(len(stack)) def empty(): if len(stack) == 0: rst.append(1) else: rst.append(0) def top(): if len(stack) == 0: rst.append(-1) else: rst.append(stack[-1]) N = int(input()) rst = [] for _ in range(N): cmd = '' val = 0 tmp = input() space = tmp.find(' ') if space == -1: # find 함수는 찾는 값이 없을 때 -1 리턴 globals()[tmp]() else: cmd, val = tmp[:space], tmp[space:] globals()[cmd](int(val)) for i in rst: print(i)
5개의 명령어는 함수를 선언해 각각 만들었다.
N개의 문자열을 입력 받아
그 문자열로 선언된 5개의 함수를 각각 실행해야 한다.
이 문제에서는 함수명으로 직접 호출할 수 없고,
입력한 문자열로 함수를 호출해야 했다.
구글링해보니,
locals와 globals 함수를 이용하면 문자열로 함수를 호출 할 수있었다.
지역변수, 전역변수 구분할 필요가 없었기 때문에
globals 함수로 문제를 풀었다.
728x90반응형'CS > 코딩 테스트' 카테고리의 다른 글
[알고리즘][파이썬] 백준_1874_스택 수열 (0) 2021.12.30 [알고리즘][파이썬] 백준_9093_단어 뒤집기 (0) 2021.12.28 [알고리즘][파이썬] 백준_18870_좌표 압축 (0) 2021.12.26 [알고리즘][파이썬] 백준_10814_나이순 정렬 (0) 2021.12.25 [알고리즘][파이썬] 백준_1181_단어 정렬 (0) 2021.12.24 다음글이 없습니다.이전글이 없습니다.댓글