집 짓는 개발블로그
Java 기초(2일차) 본문
Scanner(입력 받기)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
}
}
- 자바의 기본 제공 라이브러리 java.util로부터 Scanner를 import한다.
- Scanner 클래스를 불러왔으니 객체를 생성해야 이용 가능.
아래는 백준 연습문제 정리
고양이(10171)
escape(이스케이프 문자) : 문자열 내에서 특수한 기능 수행하는 문자
\' : 따옴표 출력(')
\" : 큰따옴표 출력(")
\n : 개행문자, 줄을 바꿔줌
\t : 탭문자
\\ : 역슬래시
주사위 세개(2480)
제출한 코드
import java.util.Scanner;
import java.util.Arrays;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int[] arr = {a, b, c};
int returning = 0;
if (a==b && b==c){
returning = 10000 + 1000*a;
}else if (a==b && b!=c){
returning = 1000 + a*100;
}else if (a==c && a!=b){
returning = 1000 +a*100;
}else if (b==c && b!=a){
returning = 1000 + b*100;
}else{
returning = 100 * Arrays.stream(arr).max().getAsInt();
}
System.out.println(returning);
}
}
- 첫 번째에 a==b==c로 썼다가 에러 남. 자바에서는 a==b까지 간 시점에 이미 boolean(true 또는 false) 결과가 나오기 때문에 int인 c와 비교할 수 없다.
- 자바에서 == 연산자는 객체를 비교하는 연산자
- primitive 타입(int, float 등)은 바로 비교 가능
- reference 타입(string, array 등)은 String 클래스의 equals() 써서 비교해야 함
- equals()는 객체가 다르더라도 문자열 값만 비교함
공 넣기(10810)
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[] basket = new int[N];
int[][] arr = new int[M][3];
for (int i = 0; i < M; i++) {
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
arr[i][2] = sc.nextInt();
}
for (int j = 0; j < M; j++) {
for (int k = 0; k <= arr[j][1] - arr[j][0]; k++) {
basket[arr[j][0] + k-1] = arr[j][2];
}
}
for (int h = 0;h<N;h++){
System.out.print(basket[h] + " ");
}
}
}
문제에서 정의하는 새로운 인덱스 주의하기
문제의 바구니는 1번에서 시작 =/= 내 인덱스는 0번에서 시작
공 바꾸기(10813)
제출한 코드
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int temp = 0;
int[] basket = new int[N];
int[][] arr = new int[M][2];
for (int i = 0; i<M; i++){
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
}
for(int k = 0;k<N;k++){
basket[k] = k+1;
}
for (int j =0;j<M;j++){
int h = arr[j][0];
int h2 = arr[j][1];
temp = basket[h-1];
basket[h-1] = basket[h2-1];
basket[h2-1] = temp;
}
for (int i = 0;i<N;i++){
System.out.print(basket[i] + " ");
}
}
}
- 역시 index는 0에서 시작하지만 바구니는 1번에서 시작하는 부분이 문제였음
'Java' 카테고리의 다른 글
하루만에 코딩테스트 언어 갈아타기(Python → Java)(3 Array) (4) | 2024.11.15 |
---|---|
하루만에 코딩테스트 언어 갈아타기(Python → Java)(2 ArrayList) (2) | 2024.11.15 |
하루만에 코딩테스트 언어 갈아타기(Python → Java)(1) (3) | 2024.11.15 |
[Java] subList 사용법 (1) | 2023.12.10 |
Java 기초(3일차) (0) | 2023.08.06 |