이번에 삼성 SDS 알고리즘 특강을 신청하고
입과테스트를 보는과정에서 나의 부족함을 인지하고 처음부터 차근차근
기초를 다지려고 공부를 시작해본다! 자바를 주력언어로 웹 백엔드 개발자가 되기위해
자바에 깊이있게 들어가기 위한 첫걸음!
입과테스트에서 주어진 txt파일을 읽어와서 처리하는 부분부터 약간 멍하게 있어버린
현실에 큰일남을 느껴서 파일 입출력 부분부터 시작해본다!!
package test;
import java.io.*;
import java.util.Scanner;
public class testt {
public static void main(String[] args) {
String[] name = new String[100];
String[] number = new String[100];
int n = 0;
try {
Scanner infile = new Scanner(new File("input.txt"));
while(infile.hasNext()) { //파일 끝에 도달했는가?
name[n] = infile.next();
number[n] = infile.next();
n++;
}
infile.close();
} catch (FileNotFoundException e) {
System.out.println("No file");
System.exit(9);
}
for(int i =0; i<n; i++) {
System.out.println(name[i] + " : "+ number[i]);
}
}
}
출력결과
같은 디렉터리 안에 파일을 하나 만들고
그파일을 읽어서 사람이름과 휴대폰번호를 각각 다른 변수에 하나씩 저장하는 코드이다!
package test;
import java.io.*;
import java.util.Scanner;
public class code20 {
static String[] name = new String[100];
static String[] number = new String[100];
static int n = 0;
public static void main(String[] args) {
try {
Scanner infile = new Scanner(new File("input.txt"));
while(infile.hasNext()) { //파일 끝에 도달했는가?
name[n] = infile.next();
number[n] = infile.next();
n++;
}
infile.close();
} catch (FileNotFoundException e) {
System.out.println("No file");
System.exit(9);
}
bubbleSort();
for(int i =0; i<n; i++) {
System.out.println(name[i] + " : "+ number[i]);
}
}
static void bubbleSort(){
for (int i = n-1; i>0; i--) {
for(int j=0; j<i; j++) {
if(name[j].compareTo(name[j+1]) >0) {
String tmp = name[j];
name[j] = name[j+1];
name[j+1] = tmp;
tmp = number[j];
number[j] = number[j+1];
number[j+1] = tmp;
}
}
}
}
}
이번에는 이름순으로 정렬을 한 뒤 보여주는 코드이다.
변수들을 스태틱으로 정의하고 함수를 만들어서 보여준다!
출력결과
compareTo 의 동작방식에 의문이 생겨
첫알파벳만 비교하는지 궁금하여
James 와 Jamet을 넣어주고 비교해보니
처음알파벳 부터 비교를 시작하여 끝에까지 비교 후 우위를 걸러내는것을 확인할 수 있었다!
'알고리즘 with 자바 > 자료구조' 카테고리의 다른 글
클래스, 객체, 참조변수 3 (0) | 2021.06.22 |
---|---|
클래스, 객체, 참조변수 2 (0) | 2021.06.21 |
클래스 , 객체, 참조변수 1 (0) | 2021.06.21 |
문자열 다루기 2 (0) | 2021.06.19 |
문자열 다루기 (0) | 2021.06.19 |