본문 바로가기

반응형

백준문제풀이

(7)
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 오큰수 (17298) [문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 오큰수 (17298) 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net [ 문제 ] 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4)..
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 쇠막대기 (10799) [문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 쇠막대기 (10799) 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net [ 문제 ] 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자..
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 스택 수열 (1874) [문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 스택 수열 (1874) 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net [ 문제 ] 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다...
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 상수 (2908) [문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 상수 (2908) 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net [ 문제 ] 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다..
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 단어의 개수 (1152) [문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 단어의 개수 (1152) [ 문제 ] 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. [ 입력 ] 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. [ 출력 ] 첫째 줄에 단어의 개수를 출력한다. [ 코드 ] #include #include using namespace std; int main() { str..
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 단어 공부 (1157) [문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 단어 공부 (1157) [ 문제 ] 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. [ 입력 ] 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. [ 출력 ] 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. [ 코드 ] #include using namespace std; int main() { string ch; // 입력받을 문자 int a[26] = { 0, }; // 해당 알..
[문과 코린이의 IT 기록장] C# 백준 문제풀이 - 두 수 비교하기 (1330) [문과 코린이의 IT 기록장] C# 백준 문제풀이 - 두 수 비교하기 (1330) [ 문제 ] 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. [ 입력 ] 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다. [ 출력 ] 첫째 줄에 다음 세 가지 중 하나를 출력한다. A가 B보다 큰 경우에는 '>'를 출력한다. A가 B보다 작은 경우에는 '

반응형