본문 바로가기
java 개발일지

코드업 기초100제, #1083 ~ #1091

by 노랑사랑팽이 2022. 9. 15.

🌼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();

	}

}

댓글