자바의 정석 기초편 - 객체지향 프로그래밍2
7-1번 연습 문제를 풀어보았습니다!!
Q) 섯다 카드 20장을 포함하는 섯다카드 한 벌(SutdaDeck클래스)를 정의한 것이다
섯다 카드 20장을 담는 SutdaCard 배열을 초기화하시오
단, 섯다 카드는 1부터 10까지의 숫자가 적힌 카드가 한 쌍씩 있고
숫자가 1,3,8인 경우, 둘 중에 한 장은 광(Kwang)이어야 한다
즉, SutdaCard의 인스턴스 변수 isKwang의 값이 true여야 한다
문제 풀이
class SutdaDeck {
final int CARD_NUM = 20;
SutdaCard[] cards = new SutdaCard[CARD_NUM];
//섯다카드 20개의 객체배열
//20장 다 1이고, true라서 다 k가 뜸
SutdaDeck() {
for(int a=0;a<cards.length;a++) {//일단 cards객체 배열의 인스턴스 생성
cards[a] = new SutdaCard();
}
int j=1; //카드 숫자를 세어 10이 넘으면 초기화해줄 변수
for(int i=0;i< cards.length;i++) { //카드 숫자를 부여하기 위해 for문
cards[i].num = j; //j값을 집어넣음
cards[i].isKwang=false; //일단 다 false해서 k를 떼줌
j++; //한번 돌아갈때마다 1씩 증가(1,2,3...이렇게 부여해줘야 하니까
if(j==11) { //j가 11이 되면
j=1; //j를 1로 초기화해줌 1~10 하고 다시 1~10 해주기 위해
}
}
//1,3,8에 광(k)를 붙여주기 위한 for문
for (int i=0;i<10;i++) { //2장씩 들어있는 1,3,8중 한장씩에만 붙이면 되니까 10번만 돌려줌
if(cards[i].num==1||cards[i].num==3||cards[i].num==8) { //카드번호가 1이거나3,8 이라면?
cards[i].isKwang=true; //true값을 줘서 광을 붙여줌
}
}
}
}
class SutdaCard {
public boolean cards;
int num; //카드넘버 1~10까지
boolean isKwang; //광이면 true
SutdaCard() {
this(1, true);
}
SutdaCard(int num, boolean isKwang) {
this.num = num;
this.isKwang = isKwang;
}
public String toString() {
return num + (isKwang ? "K" : ""); //isKwang이 true라면 k, 아니라면 ""
}
}
public class Exercise7_1 {
public static void main(String[] args) {
SutdaDeck deck = new SutdaDeck(); //20개의 섯다 카드를 넣은 덱
for(int i=0;i<deck.cards.length;i++) { //20번 돌림(출력을 위해)
System.out.print(deck.cards[i]+","); //1~10하고 다시 1~10 나와야함
}
}
}
결과
어렵게 생각하니 갱장히 어려웠던.............
하지만 쉬운 쪽으로 생각하니까 굉장히 쉬웠던 문제였당
조건이 주어졌을 때
어떤 식으로 풀어야할까????
무엇을 이용해서 풀어야할까???
이게 진짜 관건인 거 같다ㅜㅜ
사실 이 문제는 진짜 넘나 쉬운 문제였어서
처음에 머리가 아예 하얘져서
딴짓 좀 하다가 각잡고 풀었다
아이패드에 풀이도 써보고 방법도 써보고 했다ㅠㅠ
1시간 좀 넘게 걸린 거 같은데ㅜㅜ
공부 진짜 겉핥기로 한 거 같다
실전이 중요한 거 같다 더 열심히 해야지...
728x90
'문제를 풀어보자' 카테고리의 다른 글
JAVA) 자바의 정석 기초편 11-3 연습 문제(Comparable 정렬) (1) | 2022.10.13 |
---|---|
JAVA) 자바의 정석 기초편 7-5 연습문제 풀이 (0) | 2022.10.09 |
JAVA) 자바의 정석 기초편 7-2 연습문제 풀이 (1) | 2022.10.09 |
JAVA) 이것이 자바다 챕터2~11 확인문제 7번~9번 (0) | 2022.10.07 |
JAVA) 이것이 자바다 챕터6 확인문제 20번 (0) | 2022.10.05 |