코딩테스트 풀이 정리(10)
-
[코딩 테스트] 코테후기
총 5문제가 나왔고, 3번문제가 무언가 이상해서 시간이 끌렸다. 4,5 번을 못풀었는데 4번은 시간이 종료 됬고, 결국에는 나중에 시간을 들여서 풀이했다. 문제는 1, 3, 7, 26, 94, 259 그램의 무게추가 있을 때 인풋으로 290같은 숫자가 주어질때 0을 기준으로 무게가 같게하는 리스트배열을 출력하는 문제이다. 풀이 코드는 아래와 같다. 짧게 설명하면 left, right로 나누고 left에 인풋으로 주어지는 target 값을 집어 넣고 시작한다. 무게추를 큰그램부터 순회하면서 현재무게추값 + 오른쪽 과 왼쪽무게들의 합을 비교 왼쪽이 더크다면 오른쪽에 무게를 추가한다 반대의 상황이라면 왼쪽에 추가한다. 단, 왼쪽에 추가할때 왼쪽의 합이 나머지 남은 무게추들의 합 + 오른쪽의 전체 합보다 크면 ..
2023.07.09 -
위메이드 코테 후기
잘하지도 못하는 재귀 구현이 필요한 문제에 시간 투자하느라 정작 풀 수 있었던 3번 문제를 풀지 못함.. n x n 크기 좌석을 첫 손님이 0,0 부터 앉고나서 k번째까지 각 앉아 있는 손님의 좌표들이 최대가 되는 거리가 되도록 앉을 때 k번째 앉는 좌표를 구하는 문제였슴... 지금은 풀었는데 불과 30분전에는 풀지못함.. ㅅㅂ... 아까워서 여기라도 올림.. import copy def kprint(arr): for a in arr: print(a) def caculdis(coordis, n): newcoordis = copy.deepcopy(coordis) arr = [[(n * n) + 1] * n for _ in range(n)] for coord in newcoordis: x, y = coord..
2022.08.29 -
티맥스 코테 후기 - 3번
티맥스 2, 3번을 제대로 못풀었습니다. 안풀릴 2번에 시간을 쏟아서 괜히 3번을 못풀었네요. 3번은 시간이 종료되고 결국 풀었습니다만 같은 문제를 후기에 올리면 안되니 나름 문제를 변형해서 올립니다!! 배열이 주어집니다. 이때 0은 빌런 1은 히어로 입니다. 정의는 항상 승리하므로 히어로는 항상 이깁니다. 이럴때 현재 값의 배수 크기로 토너먼트가 배열이 주어지는 것 인데. [0, 1, 0, 1] 이렇게 주어지면 총 3번의 토너먼트가 일어납니다. 그리고 사람들은 히어로를 좋아하므로 히어로의 대전을 카운팅하려고 합니다. 주어진 배열은 히어로 대전이 3번 일어납니다. 이런 상황일때 [0, 0, 1, 0] 배열이 이렇게 주어진다면 빌런 선수를 히어로 선수로 한 번 바꿀 수 있습니다. 한 번 바꿀 수 있다고 했..
2022.06.23 -
22년도 네이버 코테 후기
3번 문제가 데이터 길이 100만인걸 봐서 최적화를 어떻게 해야 하지 하다가... O(n^2)되는 문제 풀이도 제출을 못했다. 문제를 다시 생각해보니 연속전인 부분만 구하는거 같은데 실마리를 찾았다 생각해서 급하게 풀어버렸다... 물론 지금도 O(n^2)이상의 최적화 풀이는 떠오르지가 않는다. 다만, 풀긴 풀었으니까 올려보고자 한다. * 문제를 제대로 이해하지 못한 상태로 문제를 푼 코드 def solution(a, k): # write your code in Python 3.6 a.sort() left = 0 right = len(a) - 1 while True: chk = a[right] - a[left] realBreak = False if chk > k: l = a[left + 1] - a[lef..
2022.06.18 -
코딩 테스트_3. 해당 단어를 원하는 단어로 변환
( 문제 ) 입력 1. "this is {template} {template} is {state}" 입력 2. [["template", "string"], ["state", "changed"]] 입력 2에 따라 입력 1의 문자열을 template -> string, state -> changed로 바꿔서 리턴해주면 됩니다. 결과 "this is string string is changed" 여기서 해당 배열 찾아서 바꿔주면 되겠네 할 수 있습니다. 문제는..! [["template", "string"], ["state", "changed"], ["changed", "template"]] 입력 2로 이와 같은 상황이 주어질 때입니다. 유니온-파인드 알고리즘을 이용하면 비교적 쉽게 해결할 수 있습니다. 유니..
2022.04.12 -
코딩 테스트_2. 가장 많이 반복되는 문자열들 제거
( 문제 ) ex1) abcabcdefabc 위와 같은 문제가 주어질 때, abc라는 문자열이 3번 반복된다 물론 a도 3번 ab도 3번 기타 다른 집한구들도 반복된다 하지만, 가장 긴 문자열을 가지고 가장 많이 반복되는 문자열은 abc이다. 이럴 때 abc를 삭제하고 남은 문자열을 리턴한다. 결과: def ex2) "abxdeydeabz" 위와 같은 문자열이 주어질 경우, ex1의 경우로 유추해서 추려내면 ab 2번, de 2번이 나옵니다. 이렇게 조건에 의해 동률일 경우는 둘다 삭제합니다. 결과: xyz ( 문제 해설 ) (목표) 문자열 길이가 1~ 전체길이 // 2까지 획수를 구해야 합니다. 1. for문을 돌면서 문자열 길이에 따라 처음 나올 경우 해당 문자열을 키로 가지는 value를 1로 설정..
2022.04.12