알고리즘/백준
-
[C++] [프로그래머스] H-Index알고리즘/백준 2022. 5. 16. 23:11
🚀 들어가며... "레벨 2"의 문제이다. 아주 쉬운 문제는 아닌데, 생각을 깊게 해보면 아주 쉽게 풀 수 있는 것 같다. 🔗 문제 https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 📑 내용 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같..
-
[백준 1181] 단어 정렬알고리즘/백준 2022. 5. 16. 23:07
🚀 들어가며... "실버 5"의 쉬운 문제이다. 입력되는 문자열을 정렬하면 된다. 조건은 아래와 같다. (중복 불가능) 길이가 짧은 것부터 길이가 같으면 사전 순으로 🔗 문제 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 📑 내용 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (..
-
[백준 1920] 수 찾기알고리즘/백준 2022. 5. 16. 23:04
🚀 들어가며... 실버 4 문제로 쉬운 문제이다. 입력 받은 배열1에 배열2의 요소가 존재하는지 체크하는 문제이다. 속도 문제로, 이진 탐색을 사용했다. 🔗 문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 📑 내용 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤..
-
[백준 17299] 오등큰수 (cpp, stack, array)알고리즘/백준 2021. 12. 19. 17:03
🚀 들어가며... 오른쪽에 존재하면서 등장횟수가, 현재 숫자보다 큰 수 중에서 가장 왼쪽에 있는 수가 오등큰수이다. 이 오등큰수를 출력하라. // 예시 7 입력 : 1 1 2 3 4 2 1 등장횟수 1:3 2:2 3:1 4:1 출력 : -1 -1 1 2 2 1 -1 🔗 문제 https://www.acmicpc.net/problem/17299 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 📑 내용 입력배열과 정답배열을 따로 두었다. 그리고 입력의 갯수가 1,000,000개로 제한이 되어 있으며 그 범위도 1,000,000까..
-
[백준 10799] 쇠막대기 (cpp, stack)알고리즘/백준 2021. 12. 19. 16:50
🚀 들어가며... stack에 '('인 경우의 인덱스를 저장하여 문제를 해결 할 수 있다. 🔗 문제 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 📑 내용 case 1 : 쇠막대기가 추가되는 경우 "("이 입력되어 쇠막대기 추가되는 경우이다. (stack.push(i)) case 2 : 레이저인 경우 ")"이 입력되었으며, 이전의 입력이 "("인 경우는 레이저이다 ( ans += stack.size()) case 3 : 레이저가 아닌 경우 ")"이 입력..
-
[백준 17413] 단어 뒤집기 2알고리즘/백준 2021. 12. 19. 16:30
🚀 들어가며... 스택을 사용하여 문제를 풀이하였다. 모든 문자열을 뒤집는다. ("" 사이에 존재하는 문자열은 제외) stack : 뒤집을 문자가 들어갈 공간 ans : 결과 문자열 🔗 문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 💌 소스코드 #include #include #include using namespace std; // 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), ..
-
[백준 1158] 요세푸스 문제 (cpp, queue)알고리즘/백준 2021. 12. 19. 04:08
🚀 들어가며... queue를 사용하였다. 입력 : 7 3 이면 -> 1 2 3 (3출력) 4 5 6 (6출력) 7 1 2 (2출력) 하는 문제이다 🔗 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 📑 내용 처음에 큐에 모든 수를 넣고. queue의 front를 조건 만족 시 출력해준다. 이때 선형 구조를 만족 시키기 위해서, front를 출력하지 않을 시, 다시 push 해준다. 아래가 핵심 부분이다. // 항상 출력 대상, 검사의 대상은 queue의 front이다. while(!q.empty()){ for(int i=0; i..
-
[백준 10845] 큐 (cpp, vector)알고리즘/백준 2021. 12. 19. 03:55
🚀 들어가며... C++ STL Vector를 사용하여 풀이한다. (vector의 특성 상, front와 back 접근이 자유로워 편리하다) 단순 구현 문제이다. 🔗 문제 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 💌 소스코드 #include #include #include using namespace std; int main(void){ ios::sync_with_stdio(false); cin.tie(NULL); cou..