전체 글

Development/iOS

[iOS] GCD란?

보호되어 있는 글입니다.

Coding Test/문제 풀이

[문제 풀이] 방금그곡

코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 해결 과정 첫 날 문제를 풀었을 때는 C#과 같은 문자열을 그대로 사용하느라 코드도 길어지고, 테스트케이스 몇 개에서 틀리는데 어디서 틀리는지 몰라서 놔뒀다. IDEA를 살펴보니, 이런 방법 말고도 문자열을 치환해서 사용할 수 있다고. 오늘 다시 이 방법으로 풀어보니 바로 풀렸다. 이 문제는 이런 IDEA를 생각하고 해결에 녹아내는 것이 Point였다. 나의 풀이 from datetime import datetime import re def solu..

Coding Test/문제 풀이

[문제 풀이] 백준 18870

해결 과정 단순한 문제인데 시간초과를 고려해야겠구나 싶어서 이진탐색으로 풀었다. 다른 풀이들을 보니 이보다 더 빠르게 푸는 방법이 있어서 이 아이디어를 얻어갈 수 있는 문제. 나의 풀이 이진 탐색을 이용한 풀이 이진 탐색은 라이브러리가 있지만 다시 구현해볼 겸 직접 구현했다. 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..

Coding Test/문제 풀이

[문제 풀이] 백준 1167

해결 과정 처음에는 모든 Edge를 다 돌며 탐색하도록 했더니 시간 초과가 났다. 연결되어 있는 Edge가 1개인 경우만 돌며 탐색해도 4%에서 시간초과가 났다. 다른 방법이 있겠구나 찾아보니 트리에서 지름을 구하는 방법이 있었다. 나의 풀이 from collections import deque V = int(input()) graph = [[] for _ in range(V+1)] for _ in range(V): infoList = list(map(int, input().split())) vertex = infoList[0] edges = infoList[1:-1] for a, b in zip(edges[0::2], edges[1::2]): graph[vertex].append((a, b)) def ..

Coding Test/문제 풀이

[문제 풀이] 백준 1043

해결 과정 set을 활용해서 풀 수 있었던 문제. 처음에는 한 번만 돌면 되는 줄 알았으나, 그게 아니었음. 계속 돌면서 겹치는 것이 있는지 확인해야 하는 과정이 필요했다. 추가로 여러 조건들을 코드에 잘 녹여내야 최종적으로 정답을 맞출 수 있었음. ex) warning의 개수가 0인지 체크하는 과정 등 나의 풀이 N, M = map(int, input().split()) warning = set(list(map(int, input().split()))[1:]) if len(warning) == 0: print(M) else: answer = 0 remain = [] isNew = True tmpNum = len(warning) for _ in range(M): participant = list(map(..

EUNJI HA
Day by Day