반응형

프로그래머스 3

[프로그래머스] 같은 숫자는 싫어 - 파이썬 / insert 메소드 시간복잡도

문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 ..

코딩테스트 2025.05.15

[프로그래머스] 완주하지 못한 선수 - 파이썬 / Counter

Counter는 내장 라이브러리인 collections에 있는 클래스로,dictionary를 상속받아서 데이터가 딕셔너리처럼 생겼다.Counter는 리스트 안의 원소들의 빈도를 세어서 dictionary 형태로 저장한다. from collections import Counterdef solution(participant, completion): p_count = Counter(participant) c_count = Counter(completion) diff = p_count - c_count return list(diff.keys())[0]Counter는 오버로딩으로 뺄셈 연산을 할 수 있다. 아무래도 빈도를 구하다보니 원소의 빈도끼리 연산을 하면 원소에 연산된 빈도가 반..

코딩테스트 2025.05.07

[프로그래머스] 교점에 별 만들기 - 파이썬

문제 분해1. 두 직선의 교점 구하기. 근데 x, y가 둘 다 정수인! => itertools의 combination으로 직선의 조합을 구하자.2. 별을 찍어줄 수 있는 최대 범위 구하기. 그러기 위해선 x 좌표값 중 최대 최소, y 좌표값 중 최대 최소를 구해야됨. (상자를 그리기 위한 좌우, 상하를 구한다고 생각하면 된다.)3. .(점) 으로 2차원 배열 초기화. x와 y의 최대 최소를 사용해서 초기화해야됨.4. 교점에 속한 인덱스를 *(별)로 업데이트. 수학의 평행이동 개념을 사용한다. 배열에 접근하는 거니 좌표가 아닌 인덱스로 접근해야됨을 헷갈리지 말기.5. row별로 join해서 return하기~ 코드주석으로 설명을 작성해 놓았다. from itertools import combinationsd..

코딩테스트 2025.04.26
반응형