[알고리즘]/문제 풀이(69)
-
백준 11478번 : 서로 다른 부분 문자열의 개수
문제 문자열 S가 주어졌을 때, S의 서로 다른 부분 문자열의 개수를 구하는 프로그램을 작성하시오. 부분 문자열은 S에서 연속된 일부분을 말하며, 길이가 1보다 크거나 같아야 한다. 예를 들어, ababc의 부분 문자열은 a, b, a, b, c, ab, ba, ab, bc, aba, bab, abc, abab, babc, ababc가 있고, 서로 다른것의 개수는 12개이다. 입력 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. 출력 첫째 줄에 S의 서로 다른 부분 문자열의 개수를 출력한다. 예제 입력 1 복사 ababc 예제 출력 1 복사 12 풀이 word = input() result = set() for i in range(len(word)):..
2023.10.13 -
백준 1269번 : 대칭 차집합
문제 자연수를 원소로 갖는 공집합이 아닌 두 집합 A와 B가 있다. 이때, 두 집합의 대칭 차집합의 원소의 개수를 출력하는 프로그램을 작성하시오. 두 집합 A와 B가 있을 때, (A-B)와 (B-A)의 합집합을 A와 B의 대칭 차집합이라고 한다. 예를 들어, A = { 1, 2, 4 } 이고, B = { 2, 3, 4, 5, 6 } 라고 할 때, A-B = { 1 } 이고, B-A = { 3, 5, 6 } 이므로, 대칭 차집합의 원소의 개수는 1 + 3 = 4개이다. 입력 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어진다. 각 집합의 원소의 개수는 200..
2023.10.13 -
백준 1427번 : 소트 인사이드
문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 예제 입력 1 복사 2143 예제 출력 1 복사 4321 예제 입력 2 복사 999998999 예제 출력 2 복사 999999998 예제 입력 3 복사 61423 예제 출력 3 복사 64321 예제 입력 4 복사 500613009 예제 출력 4 복사 965310000 풀이 N = list(input()) N.sort(reverse=True) print("".join(N))
2023.10.13 -
백준 27323번 : 직사각형
문제 정수 A, B 가 주어진다. 세로 길이가 A cm, 가로 길이가 B cm 인 아래와 같은 직사각형의 넓이를 cm2 단위로 구하시오. 입력 표준 입력에 다음과 같은 형태로 입력이 주어진다. A B 출력 세로 길이가 A cm, 가로 길이가 B cm인 직사각형의 넓이를 cm2 단위로 구하고, 단위 (cm2)를 생략하여 출력한다. 제한 1 ≦ A ≦ 100. 1 ≦ B ≦ 100. A, B 는 정수이다. 예제 입력 1 복사 2 3 예제 출력 1 복사 6 세로 길이가 2 cm, 가로 길이가 3 cm인 직사각형의 넓이는 6 cm2이므로, 6 을 출력한다. 예제 입력 2 복사 100 1 예제 출력 2 복사 100 예제 입력 3 복사 4 4 예제 출력 3 복사 16 A = int(input()) B = int(i..
2023.10.13 -
백준 1085번 : 직사각형에서 탈출
문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 제한 1 ≤ w, h ≤ 1,000 1 ≤ x ≤ w-1 1 ≤ y ≤ h-1 x, y, w, h는 정수 예제 입력 1 복사 6 2 10 3 예제 출력 1 복사 1 예제 입력 2 복사 1 1 5 5 예제 출력 2 복사 1 예제 입력 3 복사 653 375 1000 1000 예제 출력 3 복사 347 예제 입력 4 복사 161 181 762 375 예제 출력 4 복사 161 풀이 x, y, w,..
2023.10.13 -
백준 10989번 : 수 정렬하기3
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 복사 1 1 2 2 3 3 4 5 5 7 🍃 풀이 1) 틀린 답 (메모리 초과) N = int(input()) num_list = [] for _ in range(N): num = int(input()) num_list.append(num) sorted_list = sorted(num_list) f..
2023.10.13