차곡차곡 성 쌓기
article thumbnail
[S5] 1427 : Java - 소트인사이드 : 선택 정렬
알고리즘/백준 2023. 8. 16. 00:54

문제 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 접근법 N은 최대 10자리 숫자로 매우 큰 메모리 공간을 차지함. 하지만 이 문제는 자릿수의 숫자들을 뽑아 정렬하는 것이므로 String 객체로 입력을 받아 쪼개 Int형 배열로 만드는 것이 효율적이라 생각이 들었다. 그 후 최대 10개의 숫자를 정렬하는 것은 아무 정렬법이나 쓰면 된다. 풀이 코드 public class Main { public static void main(String[] args) throws IOException { // 문자열로 입력 받기 Scanner..

article thumbnail
[G3] 1377 : JAVA - 버블 소트
알고리즘/백준 2023. 8. 13. 15:59

https://www.acmicpc.net/problem/1377 1377번: 버블 소트 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 문제 버블 정렬 알고리즘을 빠삭히 알고 있어야 풀 수 있는 문제였다. 나는 못 풀었다. 핵심은 정렬이 완료된 시점을 찾아 내는 것! 우선 나의 알고리즘 풀이 생각은 다음과 같았다. 버블 정렬은 한 번 루프가 돌면 마지막 리스트 자리에는 정렬이 완료된 요소가 1개씩 추가된다. 이를 이용하여 정렬 전과 정렬 후를 비교해 정렬이 되지 않은 요소의 개수를 찾아내면 되지 않을까! 생..

article thumbnail
[B2] 2750 : JAVA - 수 정렬하기
알고리즘/백준 2023. 8. 13. 01:36

https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 수의 개수가 1000개이고 시간 제한이 1초이므로 O(n^2)써도 충분한 문제이다. 그러므로 구현이 간단한 정렬 중 하나인 버블 정렬을 선택하여 풀었다. 입력 // 입력 Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int [] nums = new int[N]; for(int i=0; i< N;i++){ nums[i] = sc.nextInt..

article thumbnail
백준 12891 DNA 비밀
알고리즘/백준 2022. 7. 10. 01:06

https://www.acmicpc.net/problem/12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 배운 내용 1. 스캐너로 문자열을 입력 받고 char 배열로 처리 char [] arr = new char[S]; arr = sc.next().toCharArray(); 2. 접근 방식 N의 수가 최대 1,000,000이므로 O(N)의 알고리즘으로 풀어야 한다. 한 번의 배열을 탐색할 때 TRUE여부를 체크해 야 하므로 새롭게 추가된 문자에 집중하여 기존의 것에서 추가, 삭..

728x90