본문 바로가기

python75

[코딩 테스트 Python 리팩토링] 이차원 배열을 정사각형으로 만드는 방법 (반복문 제거) 1. 문제 소개오늘은 코딩 테스트에서 자주 등장하는👉 이차원 배열 크기 맞추기 문제를 리팩토링해보겠습니다.문제는 다음과 같습니다 이차원 정수 배열 arr이 주어질 때행의 수 > 열의 수 → 각 행의 끝에 0 추가열의 수 > 행의 수 → 새로운 행을 추가👉 결국 행과 열의 길이를 같게 만든 정사각형 배열 반환예시:[[572, 22, 37],[287, 726, 384],[85, 137, 292],[487, 13, 876]][[572, 22, 37, 0],[287, 726, 384, 0],[85, 137, 292, 0],[487, 13, 876, 0]]문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/1818302. 문제 접근 방법처음에는 .. 2026. 3. 26.
[코딩 테스트 Python 리팩토링] 대칭 행렬 검사 문제, permutations 없이 해결하기 1. 문제 소개오늘은 코딩 테스트에서 자주 등장하는👉 이차원 배열 조건 검사 문제 (대칭 행렬 판별) 를 리팩토링해보겠습니다.문제는 다음과 같습니다.n × n 크기의 이차원 배열 arr이 주어질 때모든 i, j에 대해 arr[i][j] == arr[j][i] 이면 1아니면 0을 반환※대칭 행렬이란,행과 열을 뒤집어도 값이 같은 행렬을 의미합니다.즉,왼쪽 위 ↔ 오른쪽 아래를 기준으로 거울처럼 동일한 구조입니다.예시:[1, 2, 3][2, 4, 5][3, 5, 6]→ (0,1) = 2, (1,0) = 2→ (0,2) = 3, (2,0) = 3문제 출처: 특별한 이차원 배열2. 문제 접근 방법처음에는 모든 (i, j) 쌍을 비교해야 한다고 생각했습니다.그래서 가능한 모든 경우를 permutations을 활.. 2026. 3. 26.
[코딩테스트 Python 오답노트] 2의 거듭제곱 문제에서 제곱근을 써서 틀린 이유 (log2 핵심 정리) 1. 문제 정보문제 이름:배열의 길이를 2의 거듭제곱으로 만들기언어: Python난이도:LV.0소요 시간: 15분첫 시도 결과: 오답 (논리 오류)2. 문제를 어떻게 해석했는가? (사고 시작점)문제를 한 문장으로 요약하면?배열 길이를 2의 거듭제곱이 되도록 최소한의 0을 추가하는 문제이해한 핵심 조건배열 길이는 반드시 2^k 형태여야 함기존 값을 유지하면서 뒤에만 0 추가추가 개수는 최소이 문제는 어떤 사고를 요구하는가?절차적 사고집합 사고👉 여기서 이미 오해가 있었는가?“2의 거듭제곱”을 계산해야 하는데구현 방법을 몰라 제곱근(sqrt) 으로 접근하였습니다.3. 내가 처음 작성한 코드 / 쿼리def solution(arr): for i in range(len(arr)-int(2**(len(arr.. 2026. 3. 26.
[코딩 테스트 Python 리팩토링] 차분 배열로 구간 업데이트 O(n+q) 해결하기 1. 문제 소개오늘은 코딩 테스트에서 매우 자주 등장하는구간 업데이트(range update) 문제를 리팩토링해보겠습니다.문제는 다음과 같습니다.정수 배열 arr와 2차원 배열 queries가 주어질 때각 query [s, e]에 대해 s ≤ i ≤ e 범위의 모든 원소에 +1을 수행최종 배열을 반환해야 합니다.문제 출처: 수열과 구간 쿼리 12. 문제 접근 방법처음에는 가장 직관적인 방식으로 접근했습니다.각 구간을 직접 순회하면서 값을 증가이 방식은 이해하기 쉽고 구현도 간단합니다.3. 처음 작성한 코드def solution(arr, queries): answer = arr.copy() for s, e in queries: for i in range(s, e+1): .. 2026. 3. 26.
[코딩테스트 Python 오답 노트] 날짜 비교 문제에서 all()을 쓰면 틀리는 이유 (순차 비교 핵심 정리) 1. 문제 정보문제 이름:날짜 비교하기언어: Python난이도:LV.0소요 시간: 10분첫 시도 결과: 오답 (논리 오류)2. 문제를 어떻게 해석했는가? (사고 시작점)문제를 한 문장으로 요약하면?두 날짜 [year, month, day]를 비교해서👉 date1 이해한 핵심 조건year → month → day 순으로 비교앞에서부터 비교하다가 처음 다른 순간 결정이 문제는 어떤 사고를 요구하는가?절차적 사고 (순차 비교)집합 사고 (조건 판단)👉 여기서 이미 오해가 있었는가? 나는 “모든 값이 작거나 같은가?”로 접근함하지만 실제는 “순서대로 비교해서 결정”하는 문제 3. 내가 처음 작성한 코드 / 쿼리def solution(date1, date2): return all([i 4. 왜 틀렸는가?.. 2026. 3. 26.
[코딩테스트 Python 오답 노트] 배열 원소 삭제 문제, remove() 쓰면 틀리는 이유 (리스트 필터링 핵심) 1. 문제 정보문제 이름: 배열의 원소 삭제언어: Python난이도: Lv0소요 시간: 10분첫 시도 결과: 오답 (런타임 에러 발생)2. 문제를 어떻게 해석했는가? (사고 시작점)문제를 한 문장으로 요약하면?delete_list에 포함된 값을 arr에서 제거하고 순서를 유지이해한 핵심 조건delete_list에 있는 값은 모두 제거남은 값은 기존 순서 유지이 문제는 어떤 사고를 요구하는가?집합 사고 (필터링)👉 여기서 이미 오해가 있었는가?"삭제"라는 단어 때문에 절차적으로 하나씩 제거하려고 접근함3. 내가 처음 작성한 코드 / 쿼리def solution(arr, delete_list): for del_arr in delete_list: arr.remove(del_arr) re.. 2026. 3. 25.