본문 바로가기
java 개발일지

코드업 기초100제, #1092 ~ #1099

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

🌼1092

📝 최소공배수

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[] abc = br.readLine().split(" ");
		br.close();
		int a = Integer.parseInt(abc[0]);
		int b = Integer.parseInt(abc[1]);
		int c = Integer.parseInt(abc[2]);
		int day = 1;
		
		while (day % a != 0 || day % b != 0 || day % c != 0)
			day++;
		bw.write(String.valueOf(day));
		bw.flush();

	}

}

 

 

🌼1093

📝 이상한 출석부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());
		String[] num = br.readLine().split(" ");
		br.close();
		
		int[] count = new int[24];
		for (int i = 0; i < n; i++)
		{
			count[Integer.parseInt(num[i])]+=1;
		}
		
		for (int i = 1; i < 24; i++)
		{
			bw.write(String.valueOf(count[i]) + " ");
		}
		bw.flush();

	}

}

 

 

🌼1094

📝 이상한 출석부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));
		int n = Integer.parseInt(br.readLine());
		String[] num = br.readLine().split(" ");
		br.close();
//		bw.write(Arrays.toString(num));
		
		for (int i = n - 1; i >= 0; i--)
		{
			bw.write(String.valueOf(num[i]) + " ");
		}
		bw.flush();

	}

}

 

 

🌼1095

📝 이상한 출석부3

가장 작은 값 찾기

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());
		String[] num = br.readLine().split(" ");
		br.close();
		
		int min = Integer.parseInt(num[0]);
		for (int i = 1; i < n; i++)
		{
			 if (Integer.parseInt(num[i]) < min)
				 min = Integer.parseInt(num[i]);
		}
		bw.write(String.valueOf(min));
		bw.flush();

	}

}

 

📝 배열 정렬 사용1

정수형 배열에 적용할 수 있는 정렬

최솟값부터 차례대로 정렬한 값을 배열에 저장해준다.

Arrays.sort(numInt);

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));
		int n = Integer.parseInt(br.readLine());
		String[] num = br.readLine().split(" ");
		
		int[] numInt = new int[n];
		for (int i = 0; i < n; i++)
		{
			numInt[i] = Integer.parseInt(num[i]);
		}
		br.close();
//		bw.write(Arrays.toString(numInt) + "\n");
		Arrays.sort(numInt);
//		bw.write(Arrays.toString(numInt) + "\n");
		bw.write(String.valueOf(numInt[0]));
		bw.flush();

	}

}

 

📝 배열 정렬 사용2

정수형 배열에 적용할 수 있는 최댓값, 최솟값 찾기

Arrays.stream(numInt).min().getAsInt()

Arrays.stream(numInt).max().getAsInt()

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));
		int n = Integer.parseInt(br.readLine());
		String[] num = br.readLine().split(" ");
		
		int[] numInt = new int[n];
		for (int i = 0; i < n; i++)
		{
			numInt[i] = Integer.parseInt(num[i]);
		}
		br.close();

		bw.write(String.valueOf(Arrays.stream(numInt).min().getAsInt())); 
		bw.flush();

	}

}

 

 

🌼1096

📝 바둑알 흰 돌 두기

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());
		int a[][] = new int[20][20];
		
		for (int i = 0; i < n; i++)
		{
			String[] xy = br.readLine().split(" ");
			
			int x = Integer.parseInt(xy[0]);
			int y = Integer.parseInt(xy[1]);
			a[x][y] = 1;
		}
		br.close();
		
		for (int i = 1; i < 20; i++)
		{
			for (int j = 1; j < 20; j++)
			{
				bw.write(String.valueOf(a[i][j]) + " ");
			}
			bw.write("\n");
		}
		bw.flush();
		bw.close();

	}

}

 

 

🌼1097

📝 바둑알 십자 뒤집기

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[][] a = new int[20][20];
		
		for (int i = 1; i < 20; i++)
		{
			String[] rows = br.readLine().split(" ");
			for (int j = 1; j < 20; j++)
			{
				a[i][j] = Integer.parseInt(rows[j-1]);
			}
		}
		
		int n = Integer.parseInt(br.readLine());
		for (int i = 0; i < n; i++)
		{
			String[] xy = br.readLine().split(" ");
			int x = Integer.parseInt(xy[0]);
			int y = Integer.parseInt(xy[1]);
			for (int j = 1; j < 20; j++)
			{
				if (a[x][j] == 0)
					a[x][j] = 1;
				else
					a[x][j] = 0;
				if (a[j][y] == 0)
					a[j][y] = 1;
				else
					a[j][y] = 0;
			}
		}
		br.close();
		
		for (int i = 1; i < 20; i++)
		{
			for (int j = 1; j < 20; j++)
			{
				bw.write(String.valueOf(a[i][j]) + " ");
			}
			bw.write("\n");
		}
		bw.flush();
		bw.close();

	}

}

 

 

🌼1098

📝 설탕과자 뽑기

✏️  d 값이 0 이면 y 축(열) 로 l 만큼 증가

✏️  d 값이 1 이면 x축(행)으로 l 만큼 증가

받는 값의 행열을 변경하기 귀찮아서 map을 한칸 늘려줬다.

이러한 설정 없이 그냥 xy값을 -1씩 해주고 시작했다면, 배열 출력할 때

Arrays.toString(map) 이 명령어 써도 될듯하다.

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[] rc = br.readLine().split(" ");
		int r = Integer.parseInt(rc[0]);
		int c = Integer.parseInt(rc[1]);
		int[][] map = new int[r + 1][c + 1];
		int n = Integer.parseInt(br.readLine());
		for (int i = 0; i < n; i ++)
		{
			String[] ldxy = br.readLine().split(" ");
			int l = Integer.parseInt(ldxy[0]);
			int d = Integer.parseInt(ldxy[1]);
			int x = Integer.parseInt(ldxy[2]);
			int y = Integer.parseInt(ldxy[3]);
			if (d == 1)
			{
				for (int j = x; j < x + l; j++)
				{
					map[j][y] = 1;
				}
			}
			else if (d == 0)
			{
				for (int k = y; k < y + l; k++)
				{
					map[x][k] = 1;
				}
			}
				
		}
		br.close();
		
		for (int i = 1; i < r + 1; i++)
		{
			for(int j = 1; j < c + 1; j++)
			{
				bw.write(String.valueOf(map[i][j]) + " ");
			}
			bw.write("\n");
		}
		bw.flush();
        bw.close();

	}

}

 

 

🌼1099

📝 성실한 개미

코드 변경이 필요.

너무 if 문이 많음. 

 

✏️ 변경 방향

  • 우측 배열 범위 벗어났을때, 벽으로 둘러쌓여 있지 않은 상태 고려
  • if 문 수정 필요 →  갈 수 있는 길(0 or 2) 하나 갈 수 없는 길 하나(1 or 범위 초과)
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[][] map = new int[10][10];
		for (int i = 0; i < 10; i++)
		{
			String[] rows = br.readLine().split(" ");
			for (int j = 0; j < 10; j++)
			{
				map[i][j] = Integer.parseInt(rows[j]);
			}
		}
		br.close();
		
		int x = 1;
		int y = 1;
		if (map[x][y] == 0)
		{
			map[x][y] =9;
		}

//		while (true) // 배열 index 초과 에러 발생
		while (x < 9 && y < 9) 
		{
			if (map[x][y] == 2) 
			{
				map[x][y] = 9;
				break;
			}
			else if (map[x][y+1] == 2)
			{
				y++;
				map[x][y] = 9;
				break;
			}
			else if (map[x][y+1] == 0)
			{
				y++;
				map[x][y] = 9;
			}
			else if (map[x][y+1] == 1 && map[x+1][y] == 2)
			{
				x++;
				map[x][y] = 9;
				break;
			}
			else if (map[x][y+1] == 1&& map[x+1][y] == 1)
			{
				break;
			}
			else if (map[x][y+1] == 1)
			{
				x++;
				map[x][y] = 9;
			}
		}
		
		for (int i = 0; i < 10; i++)
		{
			for(int j = 0; j < 10; j++)
			{
				bw.write(String.valueOf(map[i][j]) + " ");
			}
			bw.write("\n");
		}
		bw.flush();
		bw.close();

	}

}

댓글