강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

k5until30님의 프로필 이미지
k5until30

작성한 질문수

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

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

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

해결된 질문

작성

·

111

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");

}


이상입니다

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

답변 2

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

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

k5until30님의 프로필 이미지
k5until30
질문자

답변 감사합니다

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

0

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

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

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

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

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

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

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

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

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

k5until30님의 프로필 이미지
k5until30

작성한 질문수

질문하기