```
package HONG;
import java.util.Scanner;
public class HONGS {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] c = {"신","임","계","갑","을","병","정","무","기","경"};
String[] s = {"유","술","해","자","축","인","묘","진","사","오","미","신"};
Scanner scan = new Scanner(System.in);
int nYear = 0;
System.out.print("연도: ");
nYear = scan.nextInt();
System.out.println(c[(nYear%10) -1] +s[(nYear%12) -1]+ "년");
scan.close();
}
}
```
여기서 `System.out.println(c[(nYear%10) -1] +s[(nYear%12) -1]+ "년");`
`scan.close();`
이공식은 어디서 나오는건가요? 60갑자 구할때 쓰는 공식인가요 ?
이부분이 이해가 안되구요..
String[] s 나 String[] c 이부분은 다 문자 배열부분이죠? 아직 안 배웠는데 이런식으로 연습문제 나오길래요...
그리고 scan.close(); 이부분은 왜 닫아주는거죠? scan을 닫아야만 실해이되나요? 아직 안 배운 부분이라서 모르는건가요? 제가요?
sehongpark님의 답변
### 배열과 나머지 연산자
아래는 배열과 나머지 연산자(`%`)를 사용하여 60갑자 문제를 공식화 한 코드입니다.
```
System.out.println(c[(nYear%10) -1] +s[(nYear%12) -1]+ "년");
```
지금 이해하려 하기보다는 배열 학습 후, 다시 한번 코드를 리뷰해보세요. 추천!
(얼핏 보기에 년도 값에 따라 에러가 발생할 듯 합니다: 10년, 12년)
### 리소스 사용과 반환
하드웨어와 관련된 컴퓨터의 자원은 사용 후 반납해주어야 합니다. (도서관을 책을 다 본 후 반납하는 것과 같음)
```
Scanner scan = new Scanner(System.in);
```
위 코드에서 스캐너는 키보드 입력 자원을 사용하는데, 사용 후 해당 자원을 반납하기 위해 사용합니다.
```
scan.close();
```