🌼1083
📝 3 6 9 Game
중첩의 원리 for 문과 if 문
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++)
{
if ( i % 3 == 0)
System.out.print("X ");
else
System.out.print(i + " ");
}
}
}
🌼1084
📝 Scanner 구현
잡아먹는 메모리가 커서 시간초과 에러 발생
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int r = sc.nextInt();
int g = sc.nextInt();
int b = sc.nextInt();
int c = 0;
for (int i = 0; i < r; i++)
{
for (int j = 0; j < g; j++)
{
for (int k = 0; k < b; k++)
{
System.out.println(i + " " + j + " " + k);
c++;
}
}
}
System.out.println(c);
}
}
📝 StringBuffer
✏️ 버퍼(Buffer)
- 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역
- 입출력 속도 향상을 위해 버퍼 사용
✏️ 버퍼 플러시(buffer flush)
버퍼에 남아 있는 데이터를 출력시킴(버퍼를 비우는 동작)
✏️ BufferedReader
버퍼를 이용한 입력
✏️ BufferedWriter
버퍼를 이용한 출력
📝 Scanner 와 StingBuffer의 가장 큰 차이
출력.
스캐너는 하나씩 값을 받으면서 출력하는데
스트링버퍼는 버퍼에 출력값을 받아두고 flush로 한꺼번에 출력하므로 출력 속도가 상대적으로 빠르다.
📝 StringBuffer 예외처리1
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
//import java.util.Arrays;
public class Main {
public static void main(String[] args) {
try { // 예외처리 필수! 또는 throws IOException 해주기
// 콘솔에서 입력받을 경우
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] rgb = br.readLine().split(" ");
br.close(); // 입출력이 끝난 후 닫아주기
// System.out.println(Arrays.toString(rgb));
int r = Integer.parseInt(rgb[0]);
int g = Integer.parseInt(rgb[1]);
int b = Integer.parseInt(rgb[2]);
int c = 0;
for (int i = 0; i < r; i++)
{
for (int j = 0; j < g; j++)
{
for (int k = 0; k < b; k++)
{
bw.write(i + " " + j + " " + k + "\n");
c++;
}
}
}
bw.write(String.valueOf(c));
bw.flush(); // 스트림을 비워줍니다.
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
📝 StringBuffer 예외처리2
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
//import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] rgb = br.readLine().split(" ");
br.close(); // 입출력이 끝난 후 닫아주기
// System.out.println(Arrays.toString(rgb));
int r = Integer.parseInt(rgb[0]);
int g = Integer.parseInt(rgb[1]);
int b = Integer.parseInt(rgb[2]);
int c = 0;
for (int i = 0; i < r; i++)
{
for (int j = 0; j < g; j++)
{
for (int k = 0; k < b; k++)
{
bw.write(i + " " + j + " " + k + "\n");
c++;
}
}
}
bw.write(String.valueOf(c));
bw.flush(); // 스트림을 비워줍니다.
}
}
🌼1085
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] hbcs = br.readLine().split(" ");
br.close();
float conBit = (Float.parseFloat(hbcs[0]) * Float.parseFloat(hbcs[1]) * Float.parseFloat(hbcs[2]) * Float.parseFloat(hbcs[3])) / 8;
float conMB = (conBit / 1024) / 1024;
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(String.format("%.1f MB", conMB));
bw.flush();
}
}
🌼1086
📝 제곱근 Math.pow(base, powe)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] whb = br.readLine().split(" ");
float conBit = (Float.parseFloat(whb[0]) * Float.parseFloat(whb[1]) * Float.parseFloat(whb[2])) / 8;
double num = Math.pow(2, 20); // 2 의 20 제곱
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(String.format("%.2f MB", conBit / num));
bw.flush();
}
}
🌼1087
📝 무한반복
for (int i = 1; ; i++)
while(true)
while(1)
do{ }while(1)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
br.close();
int s = 0;
for (int i = 1; ; i++) // 무한 반복
{
s+=i;
if (s >= n)
break;
}
bw.write(String.valueOf(s));
// bw.write(String.format("%d", s));
bw.flush();
}
}
🌼1088
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
br.close();
for (int i = 0; i <= n; i++)
{
if (i % 3 == 0)
continue;
bw.write(String.valueOf(i));
bw.append(" ");
bw.flush();
}
}
}
🌼1089
📝 등차수열
n번째 수 : a + d * (n - 1)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] adn = br.readLine().split(" ");
br.close();
int a = Integer.parseInt(adn[0]);
int d = Integer.parseInt(adn[1]);
int n = Integer.parseInt(adn[2]);
bw.write(String.valueOf(a + d * (n - 1)));
bw.flush();
}
}
🌼1090
📝 등비수열
a * r^(n - 1)
📝 실수 소수점 조절
- 소수점없이 출력 %.0f
- 소수점 1째 자리까지 출력 %.1f
- 소수점 n째 자리까지 출력 %.nf
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] arn = br.readLine().split(" ");
br.close();
int a = Integer.parseInt(arn[0]);
int r = Integer.parseInt(arn[1]);
int n = Integer.parseInt(arn[2]);
double rn = Math.pow(r, n-1);
bw.write(String.format("%.0f", a * rn));
bw.flush();
}
}
🌼1091
📝 규칙에 의한 수 나열
int 로 설정하면 오류 발생
int 보다 리터럴 단위 큰 long 으로 선언해줘야 통과~
데이터값의 범위 유의!!
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] amdn = br.readLine().split(" ");
br.close();
long a = Long.parseLong(amdn[0]);
long m = Long.parseLong(amdn[1]);
long d = Long.parseLong(amdn[2]);
long n = Long.parseLong(amdn[3]);
// int a = Integer.parseInt(amdn[0]);
// int m = Integer.parseInt(amdn[1]);
// int d = Integer.parseInt(amdn[2]);
// int n = Integer.parseInt(amdn[3]);
for (int i = 1; i < n; i++)
{
a = a * m + d;
// bw.write(String.valueOf(a) + "\n");
}
bw.write(String.valueOf(a));
bw.flush();
}
}
'java 개발일지' 카테고리의 다른 글
재귀함수 코드업 1091, 1092 / 백준 10872, 10870 (2) | 2022.09.20 |
---|---|
코드업 기초100제, #1092 ~ #1099 (0) | 2022.09.17 |
코드업 기초100제, #1073 ~ #1082 (1) | 2022.09.13 |
코드업 기초100제, #1063 ~ #1072 (1) | 2022.09.12 |
코드업 기초100제, #1053 ~ #1062 (0) | 2022.09.11 |
댓글