본문 바로가기

코딩 테스트279

투 포인터 투 포인터는 두 개의 포인트를 잡고 그와 관련된 값을 구하고 포인트를 옮겨가면서 해당하는 값을 부여하는 방법이다 즉, 포인트의 값이 변함에 따라 그와 관련된 값이 변한다. 그러므로 전체 데이터나 리스트를 확인할 필요 없이 해당 하는 부분만 바꾸면 되므로 코드의 계산 용량이 많이 줄어든다 그림으로 표현하면 아래와 같다! 2024. 4. 13.
2016년 첫번째 코드 사실 코드를 작성하면서 틀린 부분이 없었다...단지 주의할 점은 문제를 열심히 읽자는 것.. 2016년 1월 1일은 월요일이 아니라 금요일이다!!!! 먼저 문제를 보고 든 생각은 나눗셈을 이용한 문제라고 생각했다 모든 날 수를 더해서 7로 나누어 나머지 값에 따라 요일을 정하는 방법이다 ex) 1%7 = 1이므로 나머지가 1인 경우는 금요일 2%7 = 2이므로 나머지가 2인 경우는 토요일 이런식으로 월화수목금토일을 만드는 것이다!! def before_month_to_day(x): if x 8: if x % 2 == 0: days = 31*(x//2) + 30*(x//2 - 1) else: days = 31*(x//2 + 1) + 30*(x//2 - 1) return days - 1 else.. 2024. 4. 13.
가운데 글자 가져오기 첫번째 코드 이제 홀수와 짝수를 구분해서 작성하는 코드는 꽤나 익숙해졌다고 느껴진다 이것도 홀수와 짝수일 경우로 나누어 문제를 이해하기로 했다 하지만 인덱싱에 주의해야 하는데, 해당 인덱싱은 하나씩 예시를 들어서 이해하면 쉽게 이해할 수 있다! 예를 들어 홀수: 5 // 2 = 2인데, 해당 인덱싱의 위치와 동일하므로 그대로 사용한다 짝수: 4 // 2 = 2인데, 이 전 인덱스부터 시작해서 해당 인덱스까지 결과로 나와야 하므로 -1부터 +1까지 인덱싱한다 이 내용만 잘 이해하면 뚝딱 풀 수 있다! def solution(s): if len(s) % 2 == 0: start = len(s) // 2 return (s[start - 1 : start + 1]) else: return (s[len(s) //.. 2024. 4. 12.
K번째 수 첫번째 코드 인덱싱이 중요한 문제라는 생각이 들었다! commands의 길이만큼 반복할 것이지만, 해당 값들은 모두 인덱스가 1로 시작할 때 기준이므로 1을 빼고 인덱싱을 해주어야 한다. 해당 과정을 통해 새로운 리스트가 생성된다!! sort를 통해 정렬을 진행하고 새로운 리스트에서 다시 인덱싱을 진행하여 정답에 추가한다!! def solution(array, commands): answer = [] for i in range(len(commands)): start = commands[i][0] - 1 end = commands[i][1] new_array = array[start:end] new_array.sort() answer_index = commands[i][2] - 1 answer.append.. 2024. 4. 11.
008 좋아 첫번째 코드 투포인트를 이용한 상황에서 조금 더 신경쓰면 될 것 같다..? import sys input = sys.stdin.readline n = int(input()) number = list(map(int, input().split())) target = 2 good = [] sort_number = sorted(number) while target != n: one = 0 two = target - 1 while one 2024. 4. 11.
007 주몽 첫번째 코드 투 포인터를 배웠으니까 이용해서 풀어보자! sorting을 진행하여 오름차순으로 변경 합이 작으면 : 시작 += 1 합이 크면 : 끝 -= 1 합이 같으면: 시작 += 1, 끝 -= 1 라고 생각을 했는데 계속 같은 수가 있으면? 이라는 생각으로 코드를 만들면서 엉켜버렸다... 큰 아이디어는 바뀌지 않고 책을 보면서 코드와 생각 정리하면서 정답을 맞췄다! import sys input = sys.stdin.readline n = int(input()) m = int(input()) number = list(map(int, input().split())) one = 0 two = n-1 count = 0 sort_number = sorted(number) while one 2024. 4. 11.
728x90