목록프로그래머스 (32)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 문제유형 : 정렬, 구현 문제풀이 : h의 최댓값은 n이다. n부터 하나씩 내려가면서 조건에 맞는 값을 찾다가 처음으로 찾는값이 h의 최댓값이므로 해당값을 반환한다. 조건1(h번 인용된것이 h개 이상) 을 만족하는것을 찾으면, 그 개수가 inyong개 라고할때 자동으로 남은 것(전체-inyong개)들은 h보다 작게 되므로 굳이 남..
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제유형 : 정렬 문제풀이 : 문자열 길이를 3배로 늘린 후에 비교하는 방식 ( 원소가 1000이하이므로 ) - 핵심 아이디어 문자열에서의 대소비교와 일반숫자의 대소비교가 다르기때문에 가능한 코드 문자열 비교연산의 경우에 문자열 첫번째 인덱스를 아스키숫자로 바꿔서 비교하고, 같으면 그 다음 인덱스를..
https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 문제유형 : DFS 문제풀이 : 하나의 여행지를 노드로 보지않고 하나의 PATH(출발지~도착지)를 하나의 노드로 보고 풀었다. 전형적인 DFS문제이면서 살짝의 변형이 있는 문제이다. ICN ~ @@@ 인 노드를 시작노드로 하여 DFS를 진행한다. DFS의 depth가 tickets길이-1 이면 전체 항공권을 모두 사용한것이 되므..
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제유형 : DFS/BFS 문제풀이 DFS의 경로상에 순서가 있는경우 (a-b-c 와 a-c-b가 다른경우!!) dfs의 재귀호출이 리턴되는 지점에서 방문처리를 다시 풀어줘야한다 단어가 하나의 노드가되고 차이가 1인 노드끼리 연결되있다고 생각한다. 현재노드로부터 차이가 1인 노드들을 순차적으로 방문탐색하면서 target..
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제유형 : DFS/BFS 문제풀이 : 전형적인 DFS(BFS)문제로 "연결된 덩어리들이 몇개냐" 구하는 문제 DFS를 통해 노드들을 방문하는데, 자기자신이 아니면서 연결된 노드가 있을때, 해당노드가 아직 방문 전이면 재귀적으로 해당노드를 출발점으로 하여 DFS를 호출한다. 더이상 연결된 노드들이 없을때 DFS의 재귀가 끝나므로 그때 answer에 1을 추..
https://programmers.co.kr/learn/courses/30/lessons/17681 문제유형 : 구현 문제풀이 딱히 어렵진 않았던 문제지만 신박한 파이썬 내장함수를 배우게되어 정리한다. 10진수 2진수 변환 : bin() 나는 이걸 몰랐어서 그냥 재귀로 10진수에서 2진수로 변환하는 tobinary()함수를 만들어서 썼다. >>> bin(10) '0b1010' // 앞에붙은 0b를 없애려면 슬라이스기능을 이용해서 [2:] 요로코롬 오른쪽 정렬후 원하는문자로 메우기 : rjust() val = "77".rjust(5, "0") >> 77000 자매품 (왼쪽정렬) val = "77".ljust(5, "0") >> 00077 그리고 이문제는 0,1로 이루어진 문자열을 활용해서 비트연산자(논리..