Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Brigthics Studio
- 포스코 청년
- 데이터 분석
- 데이터분석
- 직원 이직여부
- 삼성SDS Brigthics
- 삼성SDS Brightics
- 직원 이직률
- 혼공머신
- 추천시스템
- 삼성 SDS Brigthics
- 팀 분석
- 혼공
- 노코드AI
- 포스코 아카데미
- 브라이틱스
- 영상제작기
- 개인 의료비 예측
- Brightics Studio
- 삼성SDS
- 브라이틱스 서포터즈
- Brightics를 이용한 분석
- 삼성 SDS
- Brigthics를 이용한 분석
- 모델링
- 혼공학습단
- Brigthics
- 혼공머신러닝딥러닝
- 캐글
- Brightics
Archives
- Today
- Total
데이터사이언스 기록기📚
[백준/Python] 5430번(구현)_AC 본문
📌문제 유형
구현, 자료구조 (골드 Lv.5)
📌문제
📌나의 문제풀이
- 1차(시간초과) : arr_len == 0과 R,D와의 관계 해결 + continue를 break로 작성
from collections import deque
t = int(input())
for _ in range(t):
action = list(map(str,input()))
arr_len = int(input())
arr = input()
# t만큼 반복 -> break 아닌 continue
# arr_len 0인데 R로만 이루어짐 -> [] 출력
if arr_len == 0 and 'D' in action:
print('error')
continue
elif arr_len == 0 and 'D' not in action:
print('[]')
continue
arr = list(map(int,arr[1:-1].split(',')))
arr = deque(arr)
# action 순서대로 수행
flag = 0
for act in action:
if act == 'R':
arr.reverse()
elif act == 'D':
if len(arr) < 1:
flag = 1
break
else:
arr.popleft()
if flag == 1:
print('error')
else:
print(str(list(arr)).replace(" ",""))
# print()
- 2차(정답) : reverse()를 번번히 적용하면 시간초과
-> R 개수 만큼 다르게 적용하여 해결
import sys
from collections import deque
t = int(sys.stdin.readline())
for _ in range(t):
action = list(map(str,sys.stdin.readline()))
arr_len = int(sys.stdin.readline().strip())
arr = sys.stdin.readline().strip()
if arr_len == 0 and 'D' in action:
print('error')
continue
elif arr_len == 0 and 'D' not in action:
print('[]')
continue
arr = list(map(int,arr[1:-1].split(',')))
arr = deque(arr)
r_cnt = 0
# action 순서대로 수행
flag = 0
for act in action:
if act == 'R':
r_cnt += 1
elif act == 'D':
if len(arr) < 1:
flag = 1
break
else:
if r_cnt % 2 == 0:
arr.popleft()
else:
arr.pop()
if flag == 1:
print('error')
else:
if r_cnt % 2 == 0:
print(str(list(arr)).replace(" ",""))
else:
arr.reverse()
print(str(list(arr)).replace(" ",""))
# print()
📌다른사람의 문제풀이
📌리뷰
- 문제가 쉬운데 정답률 20%여서 무엇인가 했더니 자잘한 조건들로 걸렸다.
- arr_len == 0과 R,D일 경우 다르게 적용
- reverse() 매번 적용하면 시간초과 -> reverse() 짝,홀수로 횟수 줄이기
728x90
'Coding Test > 백준(Python)' 카테고리의 다른 글
[백준/Python] 16928번_뱀과 사다리 게임(BFS) (0) | 2024.02.16 |
---|---|
[백준/Python] 14500번(구현)_테트로미노 (0) | 2024.02.15 |
[백준/Python] 25195번(DFS)_Yes or yes (0) | 2024.02.09 |
[백준/Python] 2109번(그리디)_순회강연 (0) | 2023.11.13 |
[백준/Python] 2141번(그리디)_우체국 (0) | 2023.10.10 |
Comments