코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 나의 풀이 def solution(s): stack = [] for c in s: if stack and stack[-1] == c: stack.pop() else: stack.append(c) if stack: return 0 else: return 1 IDEA Stack 아이디어. 효율성 문제 이걸로 해결 가능.
코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 해결 과정 첫 날 문제를 풀었을 때는 C#과 같은 문자열을 그대로 사용하느라 코드도 길어지고, 테스트케이스 몇 개에서 틀리는데 어디서 틀리는지 몰라서 놔뒀다. IDEA를 살펴보니, 이런 방법 말고도 문자열을 치환해서 사용할 수 있다고. 오늘 다시 이 방법으로 풀어보니 바로 풀렸다. 이 문제는 이런 IDEA를 생각하고 해결에 녹아내는 것이 Point였다. 나의 풀이 from datetime import datetime import re def solu..
해결 과정 단순한 문제인데 시간초과를 고려해야겠구나 싶어서 이진탐색으로 풀었다. 다른 풀이들을 보니 이보다 더 빠르게 푸는 방법이 있어서 이 아이디어를 얻어갈 수 있는 문제. 나의 풀이 이진 탐색을 이용한 풀이 이진 탐색은 라이브러리가 있지만 다시 구현해볼 겸 직접 구현했다. N = int(input()) arr = list(map(int, input().split())) sortedArr = sorted(list(set(arr))) def binarySearch(arr, num): answer = -1 start, end = 0, len(arr)-1 while start num: end = mid - 1 return answer answer = [] for num in arr: answer.append..