본문 바로가기

파이썬

(16)
99클럽 - H-Index, 프로세스 H-Index 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 문제 이해가 굉장히 어려웠다. 논문 n 편 중, h번 이상 인용된 논문이 h 편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 H-index이다. 위 H-index의 설명이 문제인 것 같은데 말을 조금 바꿔 보자면 n편의 논문 중 A번 이상 인용된 논문의 수가 B라면 A와 B 중 작은 값이 H-index이다. 풀이 def solution(citations): citations.sort(reverse=True) n = len(citations) for idx in range..
99클럽 - 제리와 톰1 17504번: 제리와 톰 2 $$ 1 - \cfrac{1}{2 + \cfrac{1}{7 + \cfrac{1}{1 + \cfrac{1}{8}}}} = 1 - \cfrac{1}{2 + \cfrac{1}{7 + \cfrac{8}{9}}} = 1 - \cfrac{1}{2 + \cfrac{9}{71}} = 1 - \cfrac{71}{151} = \cfrac{80}{151} $$ www.acmicpc.net 아이디어 풀이 _ = input() input_string = input() values = list(map(int, input_string.split())) n = 0 d = 1 for val in reversed(values): n, d = d, val * d + n remain = d - n tot = d..
99클럽 - 행렬 테두리 회전하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 풀이 def solution(rows, columns, queries): template = [[y * columns + x + 1 for x in range(columns)] for y in range(rows)] answer = [] for query in queries: y1, x1, y2, x2 = [i - 1 for i in query] min_value = float('inf') top_left = template[y1][x1] # 좌 for y in range(y1, y2): templa..
99클럽 - 큰 수 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 단순해 보이지만 거슬리는 조건이 몇 가지 있다. 문제 조건 상 정렬 순서는 유지 돼야한다. number는 2자리 이상, 1,000,000자리 이하인 숫자입니다. 입력이 100만으로 매우 무거운 계산이 예상되기 때문에 경우의 수를 전부 비교할 수 없다. 어떤 값이 작은 값인지 확인하기 위해 정렬을 사용 할 수 없다. 이는 숫자 각각의 크기외에 자릿수 라는 다른 변수가 있기 때문이다. 기본적으로는 앞에서부터 순서대로 훑어가며, 지금 가리키고 있는 숫자가 이전의 숫자보다 크다면 지금 숫자를 이전 숫자 대신..
99클럽 - 공원 산책, 예상 대진표 공원 산책 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 두더지 문제로 유명한 2차원 배열의 경로탐색 문제의 변형이다. 최단거리 찾기 보다는 난이도가 낮은 편으로, DFS나 BFS 없이 경로의 유효성을 따져 이동거리를 반환하기만 하면 된다. 풀이 def solution(park, routes): height, width = len(park), len(park[0]) obstacles = {(y, x) for y in range(height) for x in range(width) if park[y][x] == 'X'} dog_position = ..
쌩뚱맞은 'SyntaxError: invalid character in identifier' 해결하기 서론 최근 친구들과 함께 알고리즘 공부를 위해 파이썬을 복습하고 있다. 서로 작성한 코드를 채팅을 통해 주고받는데 유독 한 녀석의 코드만 문제가 생겼다. 본론 SyntaxError: invalid character in identifier 위와 같은 이름의 에러로 문제가 없는 코드지만 문법 오류라며 발광한다. 조금 특이했던 점은 위와 같이 같은 문장을 다시 작성하면 에러가 사라진다는 점이다. 위와 같은 문제는 코드를 복사, 붙여넣기 하다 보면 자주 발생하는 문제로, 육안으로는 문제가 없어 보이지만 내부적으로는 다른 문자가 사용된 경우 발생한다. 주로 발생하는 부분은 다음과 같다. 코드 내의 공백 (Tab, Space) '.'와 ',' ';'와 ';' '-'와 '—' '''와 '`' 따라서 위의 문자들을 ..