알고리즘
-
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42747 H-Index( 과학자의 생산성과 영향력을 나타내는 지표)를 구하는 문제 H-Index : 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값 Solution 중요 Idea 아무리 인용수(citations) 값이 크더라도 논문 편수가 작으면 H-index 는 작을 수 밖에 없다. ex. [312,521,1021] ⇒ H-index = 3 코드 1 def solution(citations): citations.sort(reverse=True) for h, citation in enumerate(citations, ..
[Programmers] 정렬 - H Index문제 https://school.programmers.co.kr/learn/courses/30/lessons/42747 H-Index( 과학자의 생산성과 영향력을 나타내는 지표)를 구하는 문제 H-Index : 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값 Solution 중요 Idea 아무리 인용수(citations) 값이 크더라도 논문 편수가 작으면 H-index 는 작을 수 밖에 없다. ex. [312,521,1021] ⇒ H-index = 3 코드 1 def solution(citations): citations.sort(reverse=True) for h, citation in enumerate(citations, ..
2024.01.09 -
파이썬(일부분 코틀린)으로 구현한 알고리즘, 자료구조(이론, 알고리즘 테스트)를 한눈에 볼 수 있도록 유형별로 정리한 게시글입니다. 알고리즘과 자료구조 이론 알고리즘 정렬 파이썬으로 정렬 알고리즘 구현하기 검색 자료구조 정리본 : 파이썬으로 자료구조 구현하기 Hash (해시) Stack (스택) Queue (큐) Heap (힙) 알고리즘 테스트 문제 알고리즘 그리디 알고리즘 정렬 [Programmers] 정렬 - 가장 큰 수 찾기 [Programmers] 정렬 - H Index 자료구조 해시 Python 에서는 Dictionary, Set 이용 [Programmers] 해시 - 완주하지 못한 선수 [Programmers] 해시 - 전화번호 목록 ㅇ
알고리즘과 자료구조 정리본파이썬(일부분 코틀린)으로 구현한 알고리즘, 자료구조(이론, 알고리즘 테스트)를 한눈에 볼 수 있도록 유형별로 정리한 게시글입니다. 알고리즘과 자료구조 이론 알고리즘 정렬 파이썬으로 정렬 알고리즘 구현하기 검색 자료구조 정리본 : 파이썬으로 자료구조 구현하기 Hash (해시) Stack (스택) Queue (큐) Heap (힙) 알고리즘 테스트 문제 알고리즘 그리디 알고리즘 정렬 [Programmers] 정렬 - 가장 큰 수 찾기 [Programmers] 정렬 - H Index 자료구조 해시 Python 에서는 Dictionary, Set 이용 [Programmers] 해시 - 완주하지 못한 선수 [Programmers] 해시 - 전화번호 목록 ㅇ
2024.01.09 -
/* 본 게시물은 ' 이것이 코딩 테스트다 with Python | 나동빈 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ # 그리디 알고리즘 그리디 알고리즘은 '현재 상황에서 지금 당장 좋은 것만 고르는 방법'을 의미한다. 코딩 테스트에서 만나게 될 그리디 알고리즘의 문제 유형은 '사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형' 이라는 특징이 있다. 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 제시해준다. 대체로 이 기준은 정렬 알고리즘을 사용했을 때 만족 시킬 수 있으므로 그리디 알고리즘 문제는 자주 정..
[Algorithm] 그리디 알고리즘/* 본 게시물은 ' 이것이 코딩 테스트다 with Python | 나동빈 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ # 그리디 알고리즘 그리디 알고리즘은 '현재 상황에서 지금 당장 좋은 것만 고르는 방법'을 의미한다. 코딩 테스트에서 만나게 될 그리디 알고리즘의 문제 유형은 '사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형' 이라는 특징이 있다. 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 제시해준다. 대체로 이 기준은 정렬 알고리즘을 사용했을 때 만족 시킬 수 있으므로 그리디 알고리즘 문제는 자주 정..
2021.10.21 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 15650번 - N과 M (2) : https://www.acmicpc.net/problem/15650 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 1. 조합이란? 표현 : nCr 정의 : 서로 다른 n개 중의 r 개를 뽑을때, 순서의 상관없이 뽑는 경우의 수 예시 : [1,2,3,4] 중 2개 뽑을 때 [1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] 2. 조합 구현 백준 15650번 문제를 통해 조합을 구현해보자. 문제 자연수 N과 M이 주어졌을 때, ..
[Algorithm] 조합 with 백준 15650번/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 15650번 - N과 M (2) : https://www.acmicpc.net/problem/15650 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 1. 조합이란? 표현 : nCr 정의 : 서로 다른 n개 중의 r 개를 뽑을때, 순서의 상관없이 뽑는 경우의 수 예시 : [1,2,3,4] 중 2개 뽑을 때 [1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] 2. 조합 구현 백준 15650번 문제를 통해 조합을 구현해보자. 문제 자연수 N과 M이 주어졌을 때, ..
2021.10.05 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 [백준] 15649번 - N 과 M (1) : https://www.acmicpc.net/problem/15649 1. 순열이란? 표현 : nPr 정의 : 서로 다른 n개 중의 r개를 뽑을 때, 순서를 포함한 경우의 수 예시 : [1, 2, 3] 배열의 순열 경우의 수 [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 2. 순열 구현 (with 백준 15649번) 문제 자연수 N과 M이 주..
[Algorithm] 순열 with 백준 15649번/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 [백준] 15649번 - N 과 M (1) : https://www.acmicpc.net/problem/15649 1. 순열이란? 표현 : nPr 정의 : 서로 다른 n개 중의 r개를 뽑을 때, 순서를 포함한 경우의 수 예시 : [1, 2, 3] 배열의 순열 경우의 수 [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 2. 순열 구현 (with 백준 15649번) 문제 자연수 N과 M이 주..
2021.10.05 -
/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1929번 - 소수 구하기 : https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 1. Mysolution 기존에 내가 소수를 구하는 방식은 다음과 같다. 소수는 1과 자기 자신만을 약수로 가진다. -> 2부터 N-1 까지의 수로 나누었을 때 나머지가 0이 되면 안 된다. 위 방식을 코드로 구현하면 다음과 같다. fun isPrimeNum(n : Int):..
[Algorithm] 소수 빠르게 구하기 (에라토스테네스의 체) with 백준 1929번/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1929번 - 소수 구하기 : https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 1. Mysolution 기존에 내가 소수를 구하는 방식은 다음과 같다. 소수는 1과 자기 자신만을 약수로 가진다. -> 2부터 N-1 까지의 수로 나누었을 때 나머지가 0이 되면 안 된다. 위 방식을 코드로 구현하면 다음과 같다. fun isPrimeNum(n : Int):..
2021.09.28 -
/* 본 게시물은 ' ' 의 내용을 토대로 작성되었습니다. */ 참고 자료 [BoostCourse - cs50 - 재귀] : https://www.boostcourse.org/cs112 #재귀 우리는 알고리즘을 구현하기 위해 코드를 작성하다 보면 동일한 작업을 반복해야 할 때가 있다. 보통 이러한 작업은 함수로 구현하여 코드를 보다 효율적으로 만들 수 있다. 하지만 함수 내에서도 동일한 작업이 반복되는 경우는 어떻게 할까? for문이나 while 문으로 반복을 구현할 수도 있지만 이번에 배울 '재귀' 를 통해 함수 내에서 반복을 만들 수 있다. 재귀에 대해 배워보자. 1. 재귀란? 재귀의 사전적의미는 어떠한 것을 정의할 때 자기자신을 참조(호출)하는 것을 뜻한다. 즉, 알고리즘에서 재귀란 함수를 함수 내..
[Algorithm] 재귀/* 본 게시물은 ' ' 의 내용을 토대로 작성되었습니다. */ 참고 자료 [BoostCourse - cs50 - 재귀] : https://www.boostcourse.org/cs112 #재귀 우리는 알고리즘을 구현하기 위해 코드를 작성하다 보면 동일한 작업을 반복해야 할 때가 있다. 보통 이러한 작업은 함수로 구현하여 코드를 보다 효율적으로 만들 수 있다. 하지만 함수 내에서도 동일한 작업이 반복되는 경우는 어떻게 할까? for문이나 while 문으로 반복을 구현할 수도 있지만 이번에 배울 '재귀' 를 통해 함수 내에서 반복을 만들 수 있다. 재귀에 대해 배워보자. 1. 재귀란? 재귀의 사전적의미는 어떠한 것을 정의할 때 자기자신을 참조(호출)하는 것을 뜻한다. 즉, 알고리즘에서 재귀란 함수를 함수 내..
2021.09.07