목록Coding Test/Python (33)
kjp0411 님의 블로그
자료구조는 데이터를 효율적으로 저장, 접근, 수정하기 위한 그릇입니다. 기본 자료구조인 배열과 리스트는 비슷한 점도 많지만 다른 점도 많습니다.파이썬에서는 리스트가 배열의 특성도 함께 내포하고 있어 크게 구분하여 사용하지는 않습니다. 배열과 리스트의 핵심 이론배열: 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조를 의미배열의 값은 인덱스를 통해 참조할 수 있음선언한 자료형의 값만 저장할 수 있음배열의 특징인덱스를 사용하여 값에 바로 접근할 수 있음새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어려움(값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요)배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없음구조가 간단하므로 코..
시간 초과의 원인을 찾아 해결하기코딩 테스트에서 자주 마주치는 문제는 바로 시간 초과입니다.이럴 때는 입력과 출력 방식부터 최적화할 수 있는지 점검해 보는 것이 좋습니다. 시간 초과가 발생했을 때 점검할 2가지풀이 로직의 시간 복잡도를 점검합니다.입출력 방식의 최적화를 고려해야 합니다.input() → sys.stdin.readline()print() → sys.stdout.write()input()은 호출될 때마다 한 줄을 읽어 끝의 개행 문자를 제거한 문자열을 반환하며, 숫자 변환 등 추가 파싱은 호출자가 직접 처리해야 함print()는 기본적으로 출력 내용을 버퍼에 모았다가 상황에 따라 비우지만, 반복 호출이 많으면 작은 단위의 잦은 쓰기로 인해 성능이 저하됨 sys.stdin.readline()은..
코딩 테스트를 준비하기 전에 반드시 알아야 할 2가지 스킬이 있습니다.바로 시간 복잡도와 디버깅입니다.어떤 알고리즘으로 풀어야 될지 선택의 기준이 되는 것이 바로 시간 복잡도이며어떻게 코드의 논리 오류를 잡을 지 탐색하는 방법이 바로 디버깅입니다. 우선적으로 시간 복잡도에 대해 알아보겠습니다.알고리즘에서 시간 복잡도는 주어지는 문제를 해결하기 위한 연산 횟수를 의미합니다.일반적으로 파이썬 프로그램에서는 2,000만 번 ~ 1억 번의 연산을 1초의 수행 시간으로 예측할 수 있습니다. 시간 복잡도 표기법 알아보기시간 복잡도 정의하기빅-오메가: 최선일 때의 연산 횟수를 나타낸 표기법빅-세타: 보통일 때의 연산 횟수를 나타낸 표기법빅-오: 최악일 때의 연산 횟수를 나타낸 표기법코딩 테스트에서는 빅-오 표기법(O..
프로그래머스 문제 : 신규 아이디 추천https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명 문제 풀이💡 실수 포인트: 신규 아이디 추천정규식 실수'[^a-z0-9\-_,]'로 작성 → ,를 포함시키고 .을 제거하는 실수✅ 올바른 패턴: '[^a-z0-9\-_.]'빈 문자열 처리 오류re.sub('', 'a', new_id) 사용 → 전혀 의도한 동작이 아님✅ 조건문으로 처리해야 함:if new_id == '': new_id = 'a'마침표 연속 제거 정규식초기에 [..] 사용 → '['와 ']'..
코딩 테스트에서 정렬은 자주 등장합니다.Python에는 sorted()와 sort() 두 가지 정렬 방법이 있는데,둘 다 비슷해 보이지만 엄연히 다릅니다.이 글에서는 그 차이를 명확히 정리해볼게요.✅ 기본 개념 비교항목sorted()list.sort()형태내장 함수리스트 메서드적용 대상모든 iterable (list, tuple, set, str, 등)리스트(list)만 사용 가능정렬 결과정렬된 새 리스트 반환원본 리스트를 직접 정렬 (in-place)원본 변경 여부❌ 변경 안 함✅ 변경함사용법sorted(iterable, key=..., reverse=...)list.sort(key=..., reverse=...) ✅ 코드 예시arr = [3, 1, 2]# sorted() 사용new_arr = sort..
코딩 테스트에서는 빠르게 문제를 해결하고, 짧고 효율적인 코드로 통과하는 것이 중요합니다.그 중심에는 Python의 내장 함수(built-in functions) 가 있습니다.이 글에서는 코딩테스트에 정말 자주 등장하는 내장 함수들만 엄선해 정리해보겠습니다.✅ 1. sorted()# 기본 정렬 (오름차순)sorted([3, 1, 2]) # 👉 [1, 2, 3]# 내림차순 정렬sorted([3, 1, 2], reverse=True) # 👉 [3, 2, 1]# key 인자 사용 예시arr = [(1, 3), (2, 2), (3, 1)]sorted(arr, key=lambda x: x[1]) # 👉 [(3, 1), (2, 2), (1, 3)]lambda와 함께 쓰면 정렬 기준 자유롭게 설정 가능복수..
이번 글에서는 파이썬에서 리스트를 간결하고 직관적으로 생성할 수 있는 문법인 리스트 컴프리헨션에 대해 작성해보려고 합니다. 1. 리스트 컴프리헨션리스트 컴프리헨션은 직관적으로 리스트를 생성하는 방법입니다.대괄호 [ ]로 감싸고 내부에 for 문과 if 문을 사용하여 반복하며 조건에 만족하는 것만 리스트로 생성할 수 있습니다.리스트 컴프리헨션이 코딩테스트에서 많이 쓰이는 이유1. 한 줄로 간결하게 표현 2. 가능가독성이 뛰어남3. 시간/메모리 효율성4. 실전 문제에서 자주 등장하는 패턴과 잘 맞음2. 기초 사용법0 ~ 4 사이의 정수로 리스트를 생성한다고 했을 때 리스트 컴프리헨션을 사용하지 않고 생성하는 방법입니다. 코드1 (리스트 컴프리헨션 사용 X)li=[]for i in range(5): li..
