코딩테스트 6

[Python] 파이썬으로 입력, 출력, 데이터 세팅하기

알고리즘 문제 사이트마다 입력과 출력 방식이 조금씩 다른데,프로그래머스는 로직만 작성하고 백준에서는 문제에 나와있는대로 입력과 출력까지 작성해야 한다.다양한 문제 풀이 환경에 대비해서 입력과 출력 방법을 알아두면 좋을 것 같다1. 입력 받기입력 값이 큰 경우를 대비해서input() 대신 sys.stdin.readline() 을 사용하는 것이 유리하다📌 기본 입력 처리import sysinput_func = sys.stdin.readlinen = int(input_func()) # 정수 하나 입력 받기arr = list(map(int, input_func().split())) # 한 줄에 여러 정수 입력 받기 sys.stdin.readline()은 개행 문자 (\n)도 같이 입력받기 때문에,strip()..

Python/알고리즘 2025.04.06

[LeetCode/Python] 35. Search Insert Position

35. Search Insert Position[문제]정렬된 정수 배열 nums와 목표 값 target타겟이 배열에 존재하면 인덱스를 반환존재하지 않으면 정렬된 순서를 유지하면서 삽입될 위치를 반환해야 한다.[문제 조건]배열 nums는 오름차순으로 정렬되어 있다.배열의 길이는 0 배열의 원소는 -10^4 타겟 값은 -10^4 시간 복잡도는 O(log n)[코드 1]이진탐색 버전 (시간복잡도 O(log n) )def search_insert(nums, target): left, right = 0, len(nums) - 1 while left [코드 1 설명]이진 탐색 사용:left와 right로 배열의 양끝을 설정하고, 중간값 mid를 계산해가며 탐색.조건 비교:nums[mid] == targe..

[Python] 파이썬으로 알고리즘 풀기 전 필수 개념

알고리즘을 파이썬으로 준비하려는 개발자들에게 도움이 될 만한 필수 개념을 정리해보려고 합니다.저처럼 주 언어는 Java이지만 코딩 테스트는 Python으로 준비하는 개발자들에게 조금이나마 도움이 되고자중간에 Java 개념과 비슷하거나 다른게 있으면 적어놨으니 같이 참고해주세요만약 자바 개발자가 아니라면 해당 부분은 가볍게 넘어가주시면 됩니다.알고리즘을 풀기 전에 한 번 훑어보면서 개념을 정리하고 같이 코딩 테스트를 준비해봐요 !! 파이팅 !! 1.  기본 문법변수 선언x = 10 # 타입 지정 없음name = "Dengju"파이썬은 변수 선언 시 타입을 명시하지 않아도 된다자바처럼 int, String 등을 사용하지 않는다조건문if x > 5: print("x is greater than 5")elif ..

Python/알고리즘 2025.04.03

[Programmers/Python] 추억 점수

언어 : Python문제 제한 사항 1. 문제 분석사진 속 인물의 이름과 그리움 점수를 기반으로 각 사진의 추억 점수를 계산하는 문제주어진 데이터를 활용하여 각 사진별로 점수를 계산하고, 이를 순서대로 배열로 반환한다.2. 계산 로직name 과 yearning 배열을 매핑하여 딕셔너리를 생성한다각 photo[i] 의 이름이 딕셔너리에 있는 경우 해당 점수를 가져오고, 없는 경우 0으로 처리한다각 사진의 점수를 합산하여 결과 리스트에 저장한다3. 제한 사항 분석name 의 길이와 yearning 의 길이는 항상 동일하다name 에는 중복된 이름이 없으므로 딕셔너리로 변환하기 적합하다name 과 yearning 배열의 길이가 최대 100, photo 배열의 길이가 최대 100, 각 내부 배열의 길이가 최대 ..

[Programmers/Python] 달리기 경주

1. 문제 2. 문제분석요구사항 파악:주어진 선수 목록에서 해설진이 부르는 선수(callings) 의 이름에 따라 그 선수가 자기 앞의 선수를 추월하게 해야한다-> callings 리스트를 순회하면서 선수들의 순서를 갱신하고, 최종 순위를 반환한다.시간 복잡도 문제 인식:callings 의 길이가 최대 1,000,000에 달하므로, 단순히 리스트에서 인덱스를 찾아 순서를 변경하는 방식은 O(n*m)의 시간 복잡도를 가지며 시간 초과가 발생할 가능성이 크다따라서, 선수의 위치를 빠르게 조회하고 갱신할 수 있는 방법을 찾아야 한다효율적인 자료구조:선수의 현재 위치를 빠르게 조회하고 수정할 수 있는 자료구조가 필요하다딕셔너리와 리스트를 조합해서 선수 이름을 기준으로 위치를 빠르게 찾고, callings 에 따..

[Programmers/Python] [PCCE 기출문제] 10번 / 데이터 분석도움말

언어: Python1. 문제data = [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]]  2. 문제 분석여기서 고려할 부분은 필터링과 정렬 기준인 ext와 sort_by가 동적으로 바뀐다는 것이다. 코드를 작성할 때 ext와 sort_by 값에 따라 유연하게 접근할 필요가 있다고 생각했다.이런 경우, 컬럼 이름에 따른 인덱스 매핑을 사용하면 편리하다. ext와 sort_by를 인덱스에 매핑하여 동적으로 데이터에 접근하면 필터링 및 정렬 기준이 바뀌더라도 쉽게 코드에 반영할 수 있다. + 제한사항 분석데이터 크기:data의 길이는 최대 500개로 제한된다. 따라서 O(n log n) 복잡도의 정렬을 사용해도 성능 문제는 발생하지..