목록구현 (104)
기록방
👉 문제링크 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 N의 최대 범위가 1,000으로 매우 작기 때문에 O(n^2) 시간 복잡도 알고리즘으로 풀 수 있다 버블 정렬의 시간 복잡도가 O(n^2)이므로 버블 정렬 알고리즘을 이용해 정렬해도 시간 복잡도 안에서 문제를 해결할 수 있다 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(Sys..
👉 문제링크 4998번: 저금 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트는 한 줄로 이루어져 있고, N, B, M이 주어진다. M은 항상 N보다 크다. N과 M은 항상 백만보다 작거나 같은 수이고, 음수 또는 0이 아니다 www.acmicpc.net 🔸 문제 분석 🔸 입력이 끝날때까지 테스트 케이스를 입력받는다. 실수형 N, B, M 을 입력받는다. N이 몇 번 B%만큼 커져야 M을 넘는지 출력한다. 🔸 코드 🔸 import sys lines = sys.stdin.readlines() for line in lines: n, b, m = map(float,line.split()) count = 0 while n
👉 문제링크 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 🔸 문제 분석 🔸 입력 된 n x m크기의 수 배열에서 정사각형을 그렸을때 꼭지점이 같은 수인 경우에서 가장 큰 정사각형의 너비를 출력한다. 정사각형 한 변의 길이를 늘려가며 배열을 탐색해야 한다. 배열의 최대 크기는 50 x 50이므로 시간복잡도가 O(n^3)이라고 해도 50^3 = 125,000으로 시간은 여유있다. 1자리 문자들이 공백없이 입력되므로, 구문해서 저장해야한다. 배열을 순회하며 정사각형의 네 꼭지점의 값이 같은 경우의 수 중에 너비..
👉 문제링크 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 지그재그로 그린 배열에서 x번째 위치의 분수를 출력한다. 대각선으로 라인을 세었을때 짝,홀의 분자,분모 규칙이 반대이다. 🔸 코드 🔸 x = int(input()) line = 0 end = 0 while x > end: line += 1 end += line diff = end - x if line % 2 != 0: u = diff + 1 d = line - diff else: u = line - diff d = diff + 1 print(f'{u}/{d}') 🔸 코드 해석 🔸 line은 x가 해당하는 라인 번호이다. end는 x가 해당하는 라인의 끝 인덱스이다..