본문 바로가기
728x90

All150

[프로그래머스] H-Index 기본 아이디어역순 정렬해서 하나씩 카운트def solution(citations): sorted_ct = sorted(citations, reverse=True) max_h = 0 for i in range(len(citations) + 1): cnt = 0 for c in sorted_ct: if c >= i: cnt += 1 else: break if cnt >= i: max_h = i return max_h문제의 조건 자체가 되게 헷갈렸음. 논문수, 인용수 모두 h여야하는 것이 아닌 h이상인지를 체크하는 것 2025. 4. 14.
[프로그래머스] 이름에 el이 들어가는 동물 찾기 풀이WHERE NAME LIKE '%EL%'LIKE%문자열%'` 구문으로 특정 문자열 포함 여부를 체크한다.SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'ORDER BY NAME 2025. 4. 13.
[프로그래머스] 네트워크 기본 아이디어단순한 bfs코드from collections import dequedef solution(n, computers): cnt = 0 visited = set() for i in range(n): if i not in visited: cnt += 1 queue = deque([i]) visited.add(i) while queue: node = queue.popleft() for j in range(n): if computers[node][j] == 1 and j not in visited: .. 2025. 4. 13.
[Python] 인터페이스, 프로토콜, 추상 베이스 클래스 객체지향 프로그래밍은 결국 인터페이스에 관한 것이다. 파이썬에서 타이핑(typing)을 이해하는 가장 좋은 방법은 인터페이스가 제공하는 기법을 이해하는 것이다.타이핑의 분류덕 타이핑: isinstance()로 검사하지 않는 모든 파이썬 버전구스 타이핑: 객체가 ABC 형인지 런타임에 검사하는 것, isinstance()로 ABC에 대해서 검사하는 파이썬 2.6~정적 타이핑: C, 자바, 자료형 힌트와 외부 자료형 검사기를 사용하는 파이썬 3.5~정적 덕 타이핑: Go, typing.Protocol형 힌트와 외부 자료형 검사기를 사용하는 파이썬 3.8~두 종류의 프로토콜동적 프로토콜파이썬에서 늘 사용해 온 비공식 프로토콜, 동적 프로토콜은 암묵적이며 관례적으로 정의됨객체는 동적 프로토콜의 일부만 구현해도 .. 2025. 4. 13.
[Python] 시퀀스 특별 메서드 프로토콜과 덕 타이핑덕 타이핑그냥 오리처럼 꽥꽥거리고 헤엄치면 오리로 친다.일종의 런타임 철학: "타입이 아니라, 행동이 중요하다"메서드나 속성이 있으면 어떤 타입이든 신경 쓰지 않고 사용 가능프로토콜오리처럼 행동하는지 미리 검사해서, 문제가 있으면 사전에 알려준다.덕 타이핑을 정적 검사기로 끌어온 것프로토콜은 덕 타이핑의 원칙을 따르면서도 타입 검사 도구가 미리 검사할 수 있도록 설계된 것클래스가 프로토콜을 명시적으로 상속하지 않아도, 필요한 메서드만 있으면 해당 프로토콜로 인식됨그럼 이제 시퀀스처럼 동작하는 무언가를 위해 시퀀스 프로토콜을 구현하자시퀀스 프로토콜아래 두 메서드만 구현하면 리스트처럼 활용 가능__getitem__(self, index): 슬라이스와 인덱스를 받아서 처리__len__(se.. 2025. 4. 12.
[프로그래머스] 최솟값 구하기 엊그제 푼거와 동일한 원리로 서브쿼리를 구성한다. SELECT DATETIME AS 시간FROM ANIMAL_INSWHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)최소 시간에 해당하는 '시간'컬럼 값을 가진 행만 필터링한다 2025. 4. 12.
728x90