inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

기초 탄탄! 독하게 시작하는 Java - Part 1 : 절차적 프로그래밍

[필수실습 12-3] '*'출력 놀이 (응용1)

[필수실습 12-3] *출력 놀이 응용 질문

해결된 질문

145

k5until30

작성한 질문수 1

0

안녕하세요, 저는 "기초 탄탄! 독하게 시작하는 Java - Part 1 : 절차적 프로그래밍" 강의를 수강중인 학생입니다.

제목과 동일하게 "[필수실습 12-3] *출력 놀이 응용 질문" 강의에서 여쭤보고 싶은 내용이 있어서 질문 드립니다.


질문 내용

→ 제가 해결을 위해 시도한 절차 역시, 3중 for문처럼 지양해야 할 1순위에 해당하는지 여쭤보고 싶습니다.

내용은, 작업 순서 - 설명 - 코드 순으로 배치했습니다.


<작업 순서>

// 1번 작업 줄넘김

// 2번 작업 공백 찍기

// 3번 작업 별 찍기

 

// 조건 == 공백 + 별 == 줄의 개수

 

for문만 사용해서 풀어야 한다고 생각하고 고민한 결과,

1번 for문 속에서

 

공백을 출력하는, 1번 for문(별을 찍기 전, 공백을 출력하는 로직)

/

별을 출력하는, 2번 for문(기존 삼각형 별 찍기 로직)의 구성으로 해결했습니다.

 

이 또한, 지양해야 되는 코드인지 궁금합니다. (이 코드는 3중 for문과 유사한 코드인가요)

 

<코드> (for문 부분만 넣었습니다.)

// 작업 1번

for (int i = 0; i < 5; i++) {

// 작업 2번 + [1번 for문] (공백을 4번 ~ 0번까지 출력하기 위한 for문)

for (int k = 4; i < k; k--) {

System.out.print("\t");

}

// 작업 3번 + [2번 for문] (*을 1번 ~ 5번까지 출력하기 위한 for문)

for (int j = 0; j < i + 1; j++) {

System.out.print("*\t");

}

System.out.print("\n");

}


이상입니다

긴 글 읽어주셔서 감사합니다.

java

답변 2

1

널널한 개발자

지양해야 할 이유가 없습니다. 잘 해내셨습니다. 굳이 지적을 좀 하자면 d int k가 감소하는 구조로 되어 있을 경우 가독성이 좀 떨어질 수 있습니다. 만일 k를 증가시키도록 한다면 조건식이나 초깃값이 어떻게 달라질 것인지 한 번 생각해보시는 것도 도움이 되겠습니다. 참고하시기 바랍니다. 😄

1

k5until30

답변 감사합니다

말씀주신 내용에 관해 조금 더 생각해보고 디벨롭하여 학습을 이어가겠습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. k5until30님.

”[필수실습 12-3] *출력 놀이 응용 질문” 과제에 대해 질문을 주셨네요. 삼중 for문 구조에 대해 걱정하시는 부분을 해소하고자 합니다. 우선, 현재 작성하신 코드는 확실히 삼중 for문 구조와 유사한 방식으로 실행되기는 하지만, 작성된 방식은 비교적 간단한 구조이므로 이와 같은 방식으로 풀면 문제 없습니다.

다만, 코딩의 효율성과 가독성을 향상시키기 위해 다른 접근 방식을 고려할 수도 있습니다. 예를 들어, 복잡한 로직이 아니라면 중첩된 for문을 사용해도 큰 문제가 없으며, 중첩 횟수가 많지 않을 때는 성능상 큰 부담이 되지 않습니다. 하지만 코드가 복잡해지거나 여러 조건이 추가될 때는 효율적이고 가독성 높은 코드를 작성하는 것이 중요합니다.

간단한 해결책 요약:
- 현재로서는 삼중 for문을 사용한 방식도 충분히 작동하며, 큰 문제가 없습니다.
- 복잡성을 줄이고 가독성을 높일 수 있는 다른 방법을 고려해 볼 수 있습니다.

관련하여 더 나은 코딩 스타일이나 추가적인 예제를 찾고자 한다면 아래와 같은 링크에서 다른 학습자들의 질문 및 강사의 답변을 참조할 수 있습니다:

  • 질문: “섹션 13 다차원 배열 필수 실습문제
  • 이 포스트에서는 유사한 배열 처리 문제에 대한 접근법으로 직관적이고 간단한 코드를 작성하는 데 중점을 두고 권고하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

질문있습니다

0

16

1

1번 문제 질문입니다.

0

22

1

26년 1회 실기 해설 강의

0

34

2

음악플레이어 문제 중 코드질문

0

16

1

잠겨버린 사물함 시간초과 관련 질문입니다.

0

16

1

도메인 모델에서 관계와 규칙을 구분하는 방법

0

29

2

프로젝트 질문 문의

0

33

1

문제와 풀이4 문제점

0

31

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

38

1

스프링부트 버전 문의드립니다.

0

28

1

스크립트 논리곱 설명이 틀린것 같네요

0

55

2

버스요금 계산 실제 예제에 오탈자

0

81

2

"인스턴스" 용어에 대해 질문드립니다.

0

170

1

인스턴스 변수와 클래스 변수

1

125

2

식별자로 '$' 문자 사용

0

80

2

강의 내용에서 궁금한 부분이 있어 질문 드립니다:)

0

143

2

cmd 글꼴변경

0

208

2

인코딩시 Modified UTF-8만 일어난다 보아도 될까요?

0

156

2

c,c++로 만든 프로그램을 실행한 프로세스

0

172

2

javac.exe나 java.exe

0

201

1

강의 1분 20초 부분에 제가 이해한 것과 조금 달라 질문 남깁니다.

1

276

1

널널한 개발자님~ 변수명을 한글로 시도하지 말라고하셨는데요

0

508

1

[오류 검토 요청]

0

243

2

[오류 검토 요청]

0

225

2