일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CPU 스케줄링
- 해커랭크
- 코드업 배열
- 코딩을지탱하는기술
- 책
- 설탕뽑기
- Java
- 2차원행열
- 운영체제 개요
- 코드업
- 성실한 개미
- 운영체제의역할
- 100제
- 네트워크
- 운영체제
- 운영체제 컴퓨터 향상
- 프로세스개념
- 자바
- 100제 문제
- 운영체제의 분류
- 다할수있다
- 2차원 달팽이 배열
- 양뱡향
- 프로그래머스
- 문해력 수업
- MFQ
- 운영체제의 구동
- MLQ
- 가즈아
- 기초 100제
- Today
- Total
개발로그
[코드업] 기초 100제 자바 - 복습4 본문
코드업 100제 문제를 자바로 풀면서 헷갈렸던 부분에 대해서 정리한다.
[기초-2차원배열] 설탕과자 뽑기
문제 설명 *
부모님과 함께 유원지에 놀러간 영일이는
설탕과자(설탕을 녹여 물고기 등의 모양을 만든 것) 뽑기를 보게 되었다.
길이가 다른 몇 개의 막대를 바둑판과 같은 격자판에 놓는데,
막대에 있는 설탕과자 이름 아래에 있는 번호를 뽑으면 설탕과자를 가져가는 게임이었다.
(잉어, 붕어, 용 등 여러 가지가 적혀있다.)
격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l),
막대를 놓는 방향(d:가로는 0, 세로는 1)과
막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때,
격자판을 채운 막대의 모양을 출력하는 프로그램을 만들어보자.
코드 *
int h = Integer.parseInt(st.nextToken());
int w = Integer.parseInt(st.nextToken());
int[][] ba = new int[h + 1][w + 1];
for(int i = 1; i <= h; i++) {
for(int j = 1; j <= w; j++) {
ba[i][j] = 0;
}
}
int n = Integer.parseInt(br.readLine());
for(int i = 1; i <= n; i++) {
st = new StringTokenizer(br.readLine());
// 길이
int l = Integer.parseInt(st.nextToken());
// 방향 0 = x 축, 1 = y 축
int d = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
int x = Integer.parseInt(st.nextToken());
if( d == 0 ) {
for(int j = 1; j <= l; j++) {
ba[y][x++] = 1;
}
} else {
for(int j = 1; j <= l; j++) {
ba[y++][x] = 1;
}
}
}
PS) 이문제는 2차원 배열과 반복문 조건문을 활용하는 문제이고
l,d,x,y의 조건을 잘보면서 구현 하면 된다.
수학의 행렬의 개념을 이해하고 보면 더좋다.
x축과 y축을 잘 지정해야 실제 문제를 풀고 배열에 값을 담고 출력할때 헷갈리지 않을것이다.
'코딩테스트' 카테고리의 다른 글
[코드업] 2차원 배열 달팽이 채우기 자바 (0) | 2022.08.21 |
---|---|
[코드업] 기초 100제 자바 - 복습5 (0) | 2022.08.21 |
[코드업] 기초 100제 자바 - 복습3 (0) | 2022.08.21 |
[코드업] 기초 100제 자바 - 복습2 (0) | 2022.08.21 |
[코드업] 기초 100제 자바 - 복습1 (0) | 2022.08.21 |