백준 10430
나머지
첫째줄에 A,B,C 순서대로 선언해주고 출력 계산법 따라 printIn() 하기
[내가 쓴 정답]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int A,B,C;
A = sc.nextInt();
B = sc.nextInt();
C = sc.nextInt();
System.out.println((A+B)%C);
System.out.println(((A%C) + (B%C))%C);
System.out.println((A*B)%C);
System.out.println(((A%C)*(B%C))%C);
sc.close();
}
}
[BufferedReader]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str," ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
System.out.println( (a+b)%c );
System.out.println( ((a%c)+(b%c))%c );
System.out.println( (a*b)%c );
System.out.println( ((a%c)*(b%c))%c );
}
}
readLine() 은 한 줄을 입력받아 읽는다
그 한 줄을 읽는데 공백단위로 구분하기 위해 StringTokenizer 을 쓰고
Integer.parseInt(st.nextToken());을 하여 String을 int형으로 바꿔준다
백준 2588
곱셈
어려워보여도 풀어보니 간단! (두가지 풀이가 있음)
A와 B를 곱하는데 (3) A * (B의 일의자리) , (4) A * (B의 십의자리) , (5) A * (B의 백의자리) , (6) A * B
곱한 3,4,5,6 을 출력하면 된다.
어떻게?
1. B의 385 를 3,8,5 나눠서 A와 곱해준다
** 백준 10869 문제에서 참고하자면 몫은 / , 나머지는 % 였다.
- B의 일의 자리
B%10 ▶ (385/10 = 나머지 5)
- B의 십의 자리
(B/10)%10 ▶ ( 385/10 = 몫 38 , 38/10 나머지 8)
- B의 백의자리
B/100 ▶ (385/100 = 몫 3)
B의 각 자리수와 A와 곱해서 출력하면 끝!
[나의 정답]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int A,B;
A = sc.nextInt();
B = sc.nextInt();
// 3,4,5,6 값
System.out.println(A*(B%10)); // 472 * 5
System.out.println(A*((B/10)%10)); // 472 * 8
System.out.println(A*(B/100)); // 472 * 3
System.out.println(A*B);
sc.close();
}
}
2. 또 다른 풀이는 charAt() 을 써보자
A는 int로 B는 String 으로 입력받아보자
charAt()
인덱스 번호를 넣어서 각 자리수를 참조해준다.
B.charAt(0) 을 하면 B의 문자열에서 0번째에 있는 문자를 char타입으로 변환한다
여기서 중요한 점 B = "385" 에서 인덱스 0번인 3 을 반환하는데 숫자가 아니라 문자 3 이다!
그리고 문자에서 -'0' 을 해줌으로서 숫자로 출력이 된다
마지막으로 (6) A * B 할때 숫자와 문자열이 곱해지면 문자열이 되니까 B를 Integer.parseInt() 을 써서 int로 형변환을 한다
[두번째 풀이 나의 정답]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
String B = sc.next(); //nextLine() 을 쓰면 런타임에러
sc.close();
System.out.println(A * (B.charAt(2) - '0')); //B의 일의자리
System.out.println(A * (B.charAt(1) - '0')); //B의 십의자리
System.out.println(A * (B.charAt(0) - '0')); //B의 백의자리
System.out.println(A * Integer.parseInt(B));
}
}
주의! String B = sc.nextLine() 을 쓰면 런타임에러가 뜬다
nextLine()은 한 줄을 통째로 입력받는 메서드라서?
백준 10171
고양이
백슬래쉬는 \ 단독으로 출력이 불가능한 문자이다.
백슬래쉬 \ \ 두개 붙여줘야하고 출력했을때 \ 한개로 나온다.
[출력이 잘못되었습니다]
public class Main {
public static void main(String[] args){
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
직접 입력해도 안되고
public class Main {
public static void main(String[] args){
System.out.println("\\ /\\\r\n"
+ " ) ( ')\r\n"
+ "( / )\r\n"
+ " \\(__)|");
}
}
예제출력 복사해서 ("") 안에 복붙했는데도 출력이 잘못됐다고 한다
????
1. StringBuffer 사용하기
public class Main {
public static void main(String[] args){
StringBuffer sb = new StringBuffer();
sb.append("\\ /\\\n");
sb.append(" ) ( ')\n");
sb.append("( / )\n");
sb.append(" \\(__)|");
System.out.println(sb);
}
}
\n 을 해주는 이유는 다음 줄로 넘기기 위해 (이것을 개행이라고 한다.)
2. StringBuilder 사용하기
public class Main {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append("\\ /\\\n");
sb.append(" ) ( ')\n");
sb.append("( / )\n");
sb.append(" \\(__)|\n");
System.out.println(sb);
}
}
쉬운줄 알았는데 아니었다 StringBuffer , StringBuilder 외우자
백준 10172
개
고양이와 똑같은 문제다 StringBuffer, StringBuilder 사용가능
1. StringBuilder 를 사용
public class Main {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append("|\\_/|\n");
sb.append("|q p| /}\n");
sb.append("( 0 )\"\"\"\\\n");
sb.append("|\"^\"` |\n");
sb.append("||_/=\\\\__|\n");
System.out.println(sb);
}
}
\n을 써서 개행하기 ( \\n 아님! )
백준 25083
새싹
public class Main {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append(" ,r'\"7\n");
sb.append("r`-_ ,' ,/\n");
sb.append(" \\. \". L_r'\n");
sb.append(" `~\\/\n");
sb.append(" |\n");
sb.append(" |\n");
System.out.println(sb);
}
}
'공부' 카테고리의 다른 글
[백준] 3단계 | 반복문 1~7 (0) | 2023.02.14 |
---|---|
[백준] 2단계 | 조건문 1~7 (2) | 2023.01.28 |
입력방법 BufferedReader (0) | 2023.01.20 |
[백준] 1단계 | 입출력과 사칙연산 1~9 (0) | 2023.01.20 |
어노테이션 | @Controller, @RequestMapping, @ModelAttribute | Command 객체란? (0) | 2023.01.17 |