It's going to be one day 🍀

안녕하세요! 매일 매일 공부하려고 노력하는 백엔드 개발자 지망생의 공부 흔적입니다.

코테 준비 16

[자료구조] 정렬

버블 정렬 - 첫 번째 for문을 하나의 루프라고 생각해야됨. 첫 번째 루프(i)에서 가장 큰 범위가 뒤로 이동하므로 두 번째 for문에서는 비교 범위에서 제외해야함. 그래서 범위를 N-1-i로 설정함. - 로직을 생각하긴했는데 하나의 루프를 여러번 반복할 때 가장 큰 범위를 제외시켜야한다는 조건을 생각하지 못했다. import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Intege..

[자료구조] 스택과 큐

스택 - StringBuilder 사용. - String S 변수에 예제 String들을 담는 동시에 비교함. - push 2 같은 경우에 push와 2를 어떻게 분리하나 고민했는데 st.nextToken()으로 공백 기준 한번 더 분리해주면 됐다. import java.io.*; import java.util.Stack; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Stack stack = new Stack(); S..

[백준] 배열

10807. 개수 세기 -> 놓친 부분 1) 입력할 때 공백을 기준으로 입력을 받아야해서 StringTokenizer를 사용했는데, StringTokenizer st = new StringTokenizer(br.readLine(), " "); -> 이렇게 선언하고 StringTokenizer를 사용할 때는 int numbers = Integer.parseInt(st.nextToken()); -> 이렇게 괄호안에 st.nextToken()으로 사용했어야 했다! 괄호안에 br.readLine()을 또 써서 에러가 생겼던 거였음. 2) 입력 받은 수를 배열에 넣어줄 때 arr[i] = Integer.parseInt(st.nextToken()); -> 이렇게하면 바로 넣어줄 수 있음. 별도의 변수 생성하지 않아..

[백준] 반복문

15552. 빠른 A+B for문 문제를 풀 때 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다. -> 따라서 Scanner 대신 BufferedReader와 BudderedWriter를 사용할 수 있음 BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. * 버퍼의 단점 - 입력 데이터들이 String으로 반환됨 - 데이터를 재가공 해야함(ex, StringTokenizer을 따로 사용해야함) - IOExeption의 예외처리가 필요 1) BufferedReader import import java.io.BufferedReader; import java.io.InputStreamReader; 2) BufferedWriter import import jav..

[백준] 조건문

2480.주사위 세개 - 복잡한 조건들을 다 생각해야되서 오래걸렸다. import java.util.Scanner; public class Main { public static void main(String[] args) { // scanner 선언 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); // 다 같을 경우 if (a == b && a == c) { System.out.println(10000 + a * 1000); // 셋 중 a == b 또는 a == c 둘만 같을 경우 } else if (a == b && a != c || a == c && a != b) ..