본문 바로가기

코딩 테스트279

제일 작은 수 제거하기 첫번째 코드 만약 원소가 한개이면 그냥 -1를 return하고, 한개 이상인 경우에 최소값의 인덱스를 찾아 해당 값만을 제거하고 나머지를 return하도록 한다!라는 생각을 시작으로 진행했다! def solution(arr): if len(arr) == 1: return [-1] else: del arr[arr.index(min(arr))] return arr 통과! 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12935.%E2%80%85%EC%A0%9C%EC%9D%BC%E2%80%85%EC%9E%91%EC%9D%80%E2%80%85%EC%88%98%E2%80.. 2024. 4. 16.
010 최솟값 찾기 첫번째 코드 윈도우 슬라이딩을 생각하여 그거에 맞게 코드를 작성했다! now_list에 원소 하나를 추가하고 원소 하나를 제거하는 형식을 모든 단계에서 진행하고 now_list의 최소값을 내고 answer 리스트에 계속 업데이트 하는 형식으로 하는거지 import sys input = sys.stdin.readline n , l = map(int, input().split()) A = list(map(int, input().split())) answer = [0] * n now_list = [] for i in range(l): now_list.append(A[i]) answer[i] = min(now_list) for i in range(l, n): now_list.append(A[i]) now_lis.. 2024. 4. 15.
009 DNA 비밀번호 첫번째 코드 라고 말하기도 무색하게... 슬라이딩 윈도우를 써야겠다... 라는 생각을 했는데 어떻게 접근해야할지 몰라서 책을 참고했다. 슬라이딩 윈도우에 추가될 때 변화되는 내용 함수 슬라이딩 윈도우에 제거될 때 변화되는 내용 함수 그리고 0일 떄는 신경 쓰지 않아도 되니 맞다고 표시 먼저 현재 리스트가 비어있으므로 처음부터 슬리이딩 윈도우 만큼 현재 리스트를 채우고 만약에 현재 리스트와 조건 리스트가 동일하면 check 부분이 4가 되어, 정답에 1을 추가한다. 이후부터 숫자 리스트가 끝날때까지 진행 하나 추가, 하나 제거될떄 위의 함수 이용 그리고 현재 리스트와 조건 리스트가 동일하면 check 가 4가 되어 정답에 1추가! 이런 형식으로 진행되는 것이 슬라이딩 위도우이다. 즉 박스만 움직이고 안의 .. 2024. 4. 15.
자릿수 더하기 첫번째 코드 먼저 붙어있는 숫자를 나누는 방법이 어떤게 있을까 고민했다 문자열의 경우에는 "hello"에서 h, e, l, l, o 순서로 가져와지니까 숫자를 문자로 바꾼후에 각각 불러오면서 int()함수를 이용해서 숫자로 다시 바꿔서 더해가자! def solution(n): number = str(n) answer = 0 for i in number: answer += int(i) return answer 통과! 굳굳 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12931.%E2%80%85%EC%9E%90%EB%A6%BF%EC%88%98%E2%80%85%EB.. 2024. 4. 15.
이진 변환 반복하기 첫번째 코드 해당 문제를 보고 문자열을 다루는 방법과 while, for, if문을 잘 사용하면 되겠다 라는 아이디어로 출발했다. 근데 문제는 이진 변환을 하는 방법이었다;;; 방법을 몰라서.. 그래서 GPT에게 물어본 결과 bin()함수라는 이진 변환을 바로 해주는 코드가 있었다. bin()함수의 결과를 확인하기 위해 디버깅을 사용했는데, 해당 함수는 일반 문자열과 다르게 앞에 "0b"라는 문자열이 추가되어 이진 변환이 되었음을 표현하고 있었다. 그렇기 때문에 '1'이 될 때까지 문자열을 반복하기 위해서는 앞에 "0b"문자열을 제거해야 하므로 [2:]가 필요한 것을 알았다 def solution(s): answer = [] zero = 0 count = 0 while s != '1': one_index.. 2024. 4. 14.
슬라이딩 윈도우 두 개의 포인트로 범위를 지정한 다음 범위를 유지한 채로 이동하며 값을 구하는 방법! 투 포인터의 확장 개념이라고 이해하면 좋을 듯! 범위는 고정된 채로 이동할 때 마다 해당하는 값에서 더해지고 빠지는 과정을 통해서 값을 구하는 방법!! 그림으로 표현하면 아래와 같다. 슬라이딩 윈도우로 deque를 구현할 수 있다고 하는데 덱은 데이터를 삽입하고 삭제할 수 있는 자료 구조로 리스트와 어레이와 비슷한 개념으로 이해했다. 하지만 관련된 함수가 조금 다르니까 이를 기억하도록 하자 그림으로 표현하며 아래와 같다. 코드로 deque를 불러오려면 from collections import deque deque를 생성하려면 dq = deque() 이런 방식으로 하면 된다! 2024. 4. 14.
728x90