알고리즘

알고리즘/백준알고리즘

[백준] 11656번 접미사 배열

문제 설명 접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다. baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다. 문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오. 제한 사항 -첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. -첫째 줄부터 S의 접미사를 사전순으로 한 줄에 하나씩 출력한다. ​ 입출력 예 input output baekjoon aekjoon ba..

알고리즘/백준알고리즘

[백준] 10825번 국영수

문제 설명 도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오. 1.국어 점수가 감소하는 순서로 2.국어 점수가 같으면 영어 점수가 증가하는 순서로 3.국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 4.모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.) 제한 사항 -첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 이름은 알파..

알고리즘/백준알고리즘

[백준] 10610번 30

문제 설명 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 제한 사항 -N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. -미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라. ​ 입출력 예 input output 30 30 102 210 2931 -1 80875542 88755420 접근법 먼저 30의 배수가 될 조건을 생각해 봅시다. 30의 배수가 되려면, 모든 자릿수의 합이 3의 배수여야하..

알고리즘/백준알고리즘

[백준] 11004번 K번째 수

문제 설명 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. 제한 사항 -첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다. -둘째에는 A1, A2, ..., AN이 주어진다. (-109 ≤ Ai ≤ 109) -A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다. ​ 입출력 예 input output 5 2 4 1 2 3 5 2 접근법 엄청 간단한 문제입니다. 정수를 입력받고, 정렬시킨 뒤, K-1번째 인자를 출력해주시면 됩니다. ​ 나의 코드 import sys number = list(map(int, sys.stdin.readline().split())) number_lis..

알고리즘/백준알고리즘

[백준] 1764번 듣보잡

문제 설명 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 제한 사항 -첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다. -듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다. -듣보잡의 수와 그 명단을 사전순으로 출력한다. ​ 입출력 예 input output 3 4 ohhenrie charlie baesangwo..

알고리즘/백준알고리즘

[백준] 2108번 통계학

문제 설명 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 1.산술평균 : N개의 수들의 합을 N으로 나눈 값 2.중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 3.최빈값 : N개의 수들 중 가장 많이 나타나는 값 4.범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 제한 사항 -첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. -첫째 줄에는 산술평균을 출력한다. 소수점 이하..

알고리즘/백준알고리즘

[백준] 2217번 로프

문제 설명 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 제한 사항 -첫째 줄에 정수 N이 주어진다. 다음 N개의 줄에는 각 로..

알고리즘/백준알고리즘

[백준] 10815번 숫자 카드

문제 설명 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 제한 사항 -첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. -셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되..

알고리즘/백준알고리즘

[백준] 11651번 좌표 정렬하기2

문제 설명 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 제한 사항 -첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. -첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. ​ 입출력 예 input output 5 0 4 1 2 1 -1 2 2 3 3 1 -1 1 2 2 2 3 3 0 4 접근법 좌표 정렬하기 문제와 동일한데, 정렬하는 기준이 바뀌었죠? 코드 자체는 크게 다르지 않습니다. 정렬 기준을 ..

알고리즘/백준알고리즘

[백준] 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의 최솟값을 출력한다. ​..

컴공누나
'알고리즘' 카테고리의 글 목록 (3 Page)