문제https://www.acmicpc.net/problem/25497 해설스택을 2개 사용하여 해결하였다. 이게 최선일거라 확신이 들지는 않는다. def solution(lst): answer = 0 lr_stack = [] sk_stack = [] for c in lst: if c.isdigit(): answer = answer + 1 elif c == "L": lr_stack.append(c) elif c == "R": if len(lr_stack) == 0: break lr_stack.pop() answer = an..
문제https://www.acmicpc.net/problem/2161 해설큐의 구조를 활용하면 된다. def solution(cards): answer = [] while len(cards)-1: answer.append(cards.pop(0)) cards.insert(len(cards)-1, cards.pop(0)) answer.append(cards.pop(0)) return " ".join(answer)num = int(input())print(solution([str(i+1) for i in range(num)]))
문제https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해설중복 제거 후 원본 순서대로 반환하는 로직이다. 자연어 처리에서 단어 Encoding 방식인 바이트 페어 인코딩(Byte Pair Encoding, BPE)과 유사하다.def solution(arr): answer = [] for v in arr: if not arr or answer[-1] != v: answer.append(v) return answer
문제https://www.acmicpc.net/problem/12605 해설간단한 문자열 뒤집기였다. 여러 가지 방식으로 접근하여 문제를 해결해 보았다. Solution 1.스택을 사용하여 하나씩 pop 하는 걸 의도했을지도 모르겠지만 제목 그대로 나는 단어순서만 역정렬하여 해결하였다. def solution(lst): for i, s in enumerate(lst): sentence = " ".join(s) print(f"Case #{i+1}: {sentence}")cnt = int(input())sentences = [input().split(" ")[::-1] for _ in range(cnt)]solution(sentences) Solution 2.아무 쓸모도 없고..