2563번 색종이
다차원배열 단계에서 나온 색종이다.
가로세로어쩌구... 다차원 배열을 사용하라해서 배열에 0값에서 칠한것만 1로 바꾸고 하는 방식
중복되는 곳은 안바꾸면 그만 나중에 넓이출력은 전체탐색으로 1의 값을 갖고있는 것만 카운트하면될듯?
색종이의 수는 100이하 = 100개의 배열생성 후 쭉 추가하면될듯? 필요없을수도있고
일단 색종이의 넓이는 정사각형으로 한변이 10짜리다.즉 좌표값을 얻고 해당 좌표에서 +10까지 1을 넣어주면 된다.
hint
for(int j = x[i]; j < x[i]+10; j++) // 가로x축
for(int g = y[i]; g < y[i]+10; g++) // 세로y축값
색종이의 길이만큼만 1로 채우기
solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import java.util.Scanner; public class Main { public static void main(String[] args) { int[][] a = new int[100][100]; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int count = 0; int[] x = new int[n]; int[] y = new int[n]; for(int i = 0; i < n; i++) { x[i] = sc.nextInt(); y[i] = sc.nextInt(); } for(int i = 0; i < n; i++) { // n번 색칠하는거에 의미가 있는 for문 for(int j = x[i]; j < x[i]+10; j++) { // 가로x축 for(int g = y[i]; g < y[i]+10; g++) { // 세로y축값 if(a[j][g] == 0) { a[j][g] = 1; } } } } for(int i = 0; i < 100; i++) { for(int j = 0; j < 100; j++) { if(a[i][j] == 1) { count++; } } } System.out.println(count); } } | cs |
실행시간 - 224ms
'공부 > Algorithm' 카테고리의 다른 글
1920번 수 찾기 자바로 풀어 본 짧은 글 (0) | 2023.01.14 |
---|---|
1427번 소트인사이드 자바로 풀어 본 짧은 글 (1) | 2023.01.08 |
백준 17478번 재귀함수가 뭔가요? 자바로 풀어 본 짧은 글 (0) | 2022.12.29 |
백준 10989번 수 정렬하기 자바로 풀어 본 짧은 글 (0) | 2022.12.29 |
백준 2798번 블랙잭 자바로 풀어 본 짧은 글 (0) | 2022.12.27 |