[ 백준 / Python ] #5430 AC

2023. 5. 21. 01:27· Koala - 10기/기초 알고리즘 스터디
목차
  1. Algorithm
  2. Code

https://www.acmicpc.net/problem/5430

 

5430번: AC

각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.

www.acmicpc.net

Algorithm

양쪽으로 빼기 위해서 덱을 사용하였다.R의 개수가 홀수일 경우에만 뒤집기를 수행, flag 값을 통해 R의 개수를 카운트하고 짝/홀 여부를 판정한다."[]"라고 입력을 받아도 deque의 길이는 1이 되기 때문에 길이가 0인 부분에 대해서는 예외사항으로 빈 큐로 초기화를 해줘야 한다.

'R'이면,flag 변수가 1씩 증가
'D'이면, 덱 q의 길이가 0인지 확인한다.
만약 q가 비어있으면 'error'를 출력하고 반복문을 중단한다.
그렇지 않으면, flag 변수의 값에 따라 덱의 오른쪽 끝(q.pop())
또는 왼쪽 끝(q.popleft())에서 요소를 제거한다.


만약 flag의 값이 홀수이면, 덱을 reverse() 메서드를 사용하여 뒤집고,마지막으로, 덱 q의 요소들을 쉼표로 구분하여 문자열로 합치고, 대괄호로 둘러싸여 있는 형식으로 출력한다.
전반적으로, 이 코드는 여러 개의 테스트 케이스를 입력으로 받고,주어진 쿼리에 따라
덱에 연산을 수행한 후 모든 연산이 적용된 후의 덱의 최종 상태를 출력한다.

Code

from collections import deque

T = int(input())
for tc in range(T):
    query = input()
    k = int(input())
    q = deque(input()[1:-1].split(','))
    flag = 0

    if k == 0:  
        q = []
    
    for c in query:
        if c == 'R':
            flag += 1
        elif c == 'D':
            if len(q) == 0:
                print('error')
                break
            else:
                if flag % 2 == 1:
                    q.pop()
                else:
                    q.popleft()

    else:
        if flag % 2 == 1:
            q.reverse()
        print('[' + ','.join(q) + ']')

 

저작자표시 (새창열림)

'Koala - 10기 > 기초 알고리즘 스터디' 카테고리의 다른 글

[ 백준 / Python ] #1914 하노이의 탑  (0) 2023.05.27
[ 백준 / Python ] #9663 N-Queen  (1) 2023.05.26
[ 백준 / Python ] #1515 수 이어 쓰기  (0) 2023.05.19
[백준 / Python] # 2812번 크게 만들기  (0) 2023.05.13
[백준 / Python] #1124 언더프라임  (0) 2023.05.12
  1. Algorithm
  2. Code
'Koala - 10기/기초 알고리즘 스터디' 카테고리의 다른 글
  • [ 백준 / Python ] #1914 하노이의 탑
  • [ 백준 / Python ] #9663 N-Queen
  • [ 백준 / Python ] #1515 수 이어 쓰기
  • [백준 / Python] # 2812번 크게 만들기
KauKoala
KauKoala
항공대 알고리즘 동아리 Koala 🥰
Koala항공대 알고리즘 동아리 Koala 🥰
KauKoala
Koala
KauKoala
전체
오늘
어제
  • 분류 전체보기 (1887)
    • 공지 게시판 (10)
    • 정보 게시판 (8)
    • Codeforce (15)
    • acm-icpc (6)
    • Koala - 1기 (16)
    • Koala - 2기 (111)
      • Programming Contest (1)
      • A반 (20)
      • B반 (39)
      • C반 (22)
      • 기초 강의 (18)
    • Koala - 3기 (10)
      • 기초 스터디 (7)
    • Koala - 4기 (67)
    • Koala - 5기 (144)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (68)
    • Koala - 6기 (102)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (25)
      • 모의 테스트 스터디 (1)
    • Koala - 7기 (167)
      • 기초 알고리즘 스터디 (97)
      • 코딩테스트 준비 스터디 (68)
      • 모의 테스트 스터디 (1)
    • Koala - 8기 (44)
      • 기초 알고리즘 스터디 (32)
      • 코딩테스트 준비 스터디 (10)
      • 코드포스 버츄얼 스터디 (0)
      • 프로그래머스 LV2 스터디 (0)
    • Koala - 9기 (205)
      • 기초 알고리즘 스터디 (138)
      • 코딩테스트 준비 스터디 (64)
      • 모의테스트 준비 스터디 (1)
    • Koala - 10기 (117)
      • 기초 알고리즘 스터디 (30)
      • 코딩테스트 준비 스터디 (86)
      • 모의테스트 준비 스터디 (1)
    • Koala - 11기 (151)
      • 기초 알고리즘 스터디 (46)
      • 코딩테스트 준비 스터디 (104)
      • 모의테스트 준비 스터디 (1)
    • Koala - 12기 (86)
      • 기초 알고리즘 스터디 (31)
      • 코딩테스트 준비 스터디 (55)
    • Koala - 13기 (119)
      • 기초 알고리즘 스터디 (52)
      • 코딩테스트 준비 스터디 (67)
    • Koala - 14기 (116)
      • 기초 알고리즘 스터디 (39)
      • 코딩테스트 준비 스터디 (77)
    • Koala - 15기 (138)
      • 기초 알고리즘 스터디 (73)
      • 코딩테스트 준비 스터디 (65)
    • Koala - 16기 (47)
      • 코딩테스트 기초 스터디 (16)
      • 코딩테스트 심화 스터디 (31)
    • Koala - 17기 (62)
      • 코딩테스트 기초 스터디 (15)
      • 코딩테스트 심화 스터디 (47)
    • Koala - 18기 (31)
      • 코딩테스트 기초 스터디 (11)
      • 코딩테스트 심화 스터디 (20)
    • Koala - 19기 (41)
      • 코딩테스트 기초 스터디 (7)
      • 코딩테스트 심화 스터디 (34)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 🐨항공대 알고리즘 학회 Koala 3기 모집
  • 🐨항공대 알고리즘 학회 Koala 2기 모집
  • 소모임 소개

인기 글

태그

  • BFS
  • C++
  • BOJ
  • dp
  • 백준
  • dfs
  • 파이썬
  • 백트래킹

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
KauKoala
[ 백준 / Python ] #5430 AC
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.