본문 바로가기

Problem Solving/BOJ101

[백준] 1427번 - 소트인사이드 문제 > 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 > 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 > 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 해결방법 > 문자열로 입력받아 내림차순으로 정렬 #include #include #include using namespace std; int main(){ string s; cin >> s; sort(s.begin(), s.end()); reverse(s.begin(), s.end()); cout https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. .. 2020. 1. 7.
[백준] 1193번 - 분수찾기 문제 > 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 > 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 > 첫째 줄에 분수를 출력한다. 해결방법 > 행렬을 각 원소를 대각선 부분집합으로 생각하면 { 1/1 } , { 1/2, 2/1 }, { 3/1, .. 2020. 1. 7.
[백준] 1181번 - 단어 정렬 문제 > 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 > 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 > 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 해결방법 > 1. 문자열 길이 2. 사전순 3. 중복 단어 제거 #include #include #include #include using namespace std; bool compare(pair a, pair b){ if(a... 2020. 1. 7.
[백준] 1085번 - 직사각형에서 탈출 문제 > 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 > 첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다. 출력 > 첫째 줄에 문제의 정답을 출력한다. 해결방법 > 현재 위치에서 각 경계선까지의 거리 중에 최소 거리를 구한다.(x, y, w-x, h-y) C++ #include #include using namespace std; int main(){ int d[4]; int w, h;.. 2020. 1. 7.
[백준] 1026번 - 보물 문제 > 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0]*B[0] + ... + A[N-1]*B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 입력 > 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다. 출력 > 첫째 줄에 S의 최솟값을 출력한다. .. 2020. 1. 7.