-
[프로그래머스] Lv1 문자열 나누기알고리즘 2024. 12. 4. 00:52
일반적인 리스트 방식으로 아래처럼 풀이 진행 후 다른 사람들의 풀이를 봤는데
deque로 푼 방식이 있어서 개념에 대해 확인 후 풀어봤습니다.
def solution(s): answer = 0 x_cnt = 0 y_cnt = 0 for index, i in enumerate(s): if x_cnt == y_cnt: answer += 1 x = s[index] if index == 0: x = i if x == i: x_cnt += 1 else: y_cnt += 1 return answer
사실 해당 문제가 while문을 필수적으로 요구하는 것이 아니어서 굳이 while문을 써야하는지는 의문이 들었는데
막상 for문이 아닌 while문으로 풀려고 하니 선뜻 어떻게 풀지 손이 가지 않았고 deque는 이번에 문제로 풀어본 것은 처음이라
꼭 활용해보고 싶어서 GPT 도움을 받아 풀었습니다..
from collections import deque def solution(s): answer = 0 x_cnt = 0 y_cnt = 0 x = None q = deque(s) while q: char = q.popleft() if x_cnt == 0 and y_cnt == 0: x = char x_cnt += 1 elif x == char: x_cnt += 1 else: y_cnt += 1 if x_cnt == y_cnt: answer += 1 x_cnt = y_cnt = 0 if x_cnt != 0 or y_cnt != 0: answer += 1 return answer
문제 자체가 어려운게 아니었는데 문제 자체를 제대로 이해하지 않은 상태에서 풀려고 하니 계속 막히고 헷갈렸던거라
다음 문제부터는 확실히 이해하고 진행하고자 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/140108
'알고리즘' 카테고리의 다른 글
[프로그래머스] Lv2 프로세스 (0) 2025.01.03 [프로그래머스] Lv2 올바른 괄호 (0) 2024.12.26 [프로그래머스] Lv0 외계어 사전 (0) 2024.11.23 [프로그래머스] Lv1 카드뭉치 (0) 2024.11.23