04 정렬
04-1 버블 정렬
문제 015 수 정렬하기 1
백준 2750번 https://www.acmicpc.net/problem/2750
01단계 <문제 분석하기>
1. 문자열 형태로 입력값을 받음
2. 문자 배열로 변환
3. 문자 배열값을 순서대로 읽으면서 숫자형으로 변환하여 더함
* 문자열을 숫자형으로 변경하려면?
- 아스키코드에서 같은 의미의 문자와 숫자의 드 값 차이는 48이다.
- ex) 문자'1'을 숫자 1로 변환하려면 '1'-48 또는 '1'-'0' 으로연산
02단계 <손으로 풀어 보기>
03단계 <슈도코드 작성하기>
04단계 <코드 구현하기>
public class Main {
public class void main(String[] args) {
Scanner sc new Scanner(System.in);
int N = sc.nextInt();
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = sc.nextInt();
}
for (int i = 0; i < N-1; i++) {
for (int j = 0; j < N-1-i; j++) {
if (A[j] > A[j+1]) {
int temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
}
}
}
for (int i = 0; i < N; i++) {
System.out.println(A[j]);
}
}
}
문제 016 스택으로 오름차순 수열 만들기
백준 1874번 https://www.acmicpc.net/problem/1874
01단계 <문제 분석하기>
1. 문자열 형태로 입력값을 받음
2. 문자 배열로 변환
3. 문자 배열값을 순서대로 읽으면서 숫자형으로 변환하여 더함
* 문자열을 숫자형으로 변경하려면?
- 아스키코드에서 같은 의미의 문자와 숫자의 드 값 차이는 48이다.
- ex) 문자'1'을 숫자 1로 변환하려면 '1'-48 또는 '1'-'0' 으로연산
02단계 <손으로 풀어 보기>
03단계 <슈도코드 작성하기>
04단계 <코드 구현하기>
public class Main {
public static void main (String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(reader.readLine());
mData[] A = new mData[N];
for (int i = 0; i < N; i++) {
A[i] = new mData(Integer.parseInt(reader.readLine()), i);
}
Arrays.sort(A);
int Max == 0;
for (int = 0; i < N; i++) {
if (Max < A[i].index - i)
Max = A[i].index - i;
}
System.out.println(Max + 1);
}
}
class mData implements comparable<mData> {
int value;
int index;
public mData(int value, int index) {
super();
this.value = value;
this.index = index;
}
@Override
public int compareTo(mData o) {
return this.value - o.value();
}
}
04-2 선택 정렬
문제 017 내림차순으로 자릿수 정렬하기
백준 1427번 https://www.acmicpc.net/problem/1427
01단계 <문제 분석하기>
1. 문자열 형태로 입력값을 받음
2. 문자 배열로 변환
3. 문자 배열값을 순서대로 읽으면서 숫자형으로 변환하여 더함
* 문자열을 숫자형으로 변경하려면?
- 아스키코드에서 같은 의미의 문자와 숫자의 드 값 차이는 48이다.
- ex) 문자'1'을 숫자 1로 변환하려면 '1'-48 또는 '1'-'0' 으로연산
02단계 <손으로 풀어 보기>
03단계 <슈도코드 작성하기>
04단계 <코드 구현하기>
public class Main {
public static void main(Stringp[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int[] A = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
A[i] = Integer.parseInt(str.substring(i, i+1));
}
for (int i = 0; i < str.length(); i++) {
int Max = i;
for (int j = i + 1; j < str.length(); j++) {
if (A[j] > A[Max]) {
int temp = A[i];
A[i] = A[Max];
}
}
for (int i = 0; i < str.length(); i++) {
System.out.pritnln(A[i]);
}
}
}
}
'JAVA > 자료구조&알고리즘' 카테고리의 다른 글
JAVA Doit 알고리즘 코딩테스트 자바 편 - Day7 (0) | 2023.05.28 |
---|---|
JAVA Doit 알고리즘 코딩테스트 자바 편 - Day6 (0) | 2023.05.27 |
JAVA Doit 알고리즘 코딩테스트 자바 편 - Day4 (0) | 2023.05.25 |
JAVA Doit 알고리즘 코딩테스트 자바 편 - Day3 (0) | 2023.05.24 |
JAVA Doit 알고리즘 코딩테스트 자바 편 - Day2 (0) | 2023.05.23 |
댓글