Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1주차 Assignment - 박연지 #3

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

yeonja23
Copy link

Description

<!— 구현 및 작업 내용을 적어주세요 —>

  • java기초와 관련된 백준 문제 풀어보기
  • Test1 문제 풀어보기

Important content

<!— 주의 깊게 봐줬으면 하는 부분을 적어주세요 —>

  • 클래스 작성 후 main메소드 실행하였는데 c1 객체는 제대로 실행됐지만 c2 객체는 보여주신 결과랑 다르게 나왔습니다. 생성자에 전달한 인수 값들이 문제인 것 같아서 변경을 했는데 원하는 결과대로 나왔습니다. 제 마음대로 변경한 거긴 한데 괜찮을까요?

Question

<!— 궁금한 점을 적어주세요 —>

Reference

<!— 참고한 레퍼런스가 있다면 공유해 주세요 —>

@djdongjae djdongjae added the ✨ 과제 제출 아기사자가 처음 제출한 상태를 말합니다. label Apr 1, 2024
@shinheekim shinheekim added ✅ 과제 통과 조지미에게 확인을 받은 후의 상태입니다. and removed ✨ 과제 제출 아기사자가 처음 제출한 상태를 말합니다. labels Apr 1, 2024
@shinheekim shinheekim self-requested a review April 1, 2024 06:54
@shinheekim shinheekim added ❌ 가이드라인 미준수 제출은 했으나 가이드라인 미준수인 경우입니다. and removed ✅ 과제 통과 조지미에게 확인을 받은 후의 상태입니다. labels Apr 1, 2024
@shinheekim shinheekim added ✅ 과제 통과 조지미에게 확인을 받은 후의 상태입니다. and removed ❌ 가이드라인 미준수 제출은 했으나 가이드라인 미준수인 경우입니다. labels Apr 1, 2024
@shinheekim
Copy link

1주차 과제 통과입니다~! 수고하셨습니다😊

for(int x=0;x<M;x++) {
i = scanner.nextInt();
j = scanner.nextInt();
k = scanner.nextInt();
Copy link

@shinheekim shinheekim Apr 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scanner 잘 사용해주신거같은데 이 Scanner가 사용하기 쉽지만 대량의 데이터를 입력 받을 때 성능 문제가 생길 수 있습니다. 더 효율적인 코드를 위해서는 BufferedReader를 사용하는 것도 추천드립니다. 아래 블로그 참고해보시면 좋을 거같습니다~!

https://rlakuku-program.tistory.com/33

int T = scanner.nextInt();
int A,B;

for(int i=1;i<=T;i++) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

간단한 자바코드 작성시에는 System.out.println()를 반복적으로 사용해도 좋지만 결과를 StringBuilder에 추가해두었다가 마지막에 한번에 출력하는 방식도 사용해볼 수 있습니다.

StringBuilder sb = new StringBuilder();

        for(int i=1; i<=T; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());

            sb.append("Case #").append(i).append(": ").append(A+B).append("\n");
        }
            System.out.print(sb.toString());


int num = scanner.nextInt();

for(int i=1;i<=num;i++) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

중첩 반복문을 활용하여 잘 구현해주셨습니다! 앞으로 코드 작성을 할 때 for(int i=1;i<=num;i++)이런식으로 붙여 사용하시는 것보다 가독성을 위해 for (int i = 1; i <= num; i++) 이런 식으로 작성하시는 것을 추천드립니다.

또한 별찍기 문제는 이것 외에도 많으니 반복문을 더 자세히 공부하고 싶으시다면 관련 문제를 더 풀어보시는 것도 좋을 거같습니다.

int H = scanner.nextInt();
int M = scanner.nextInt();

if(M<45) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저 if문을 조금 더 간결하게 작성할 수 있는 방법을 모색해보면 좋을 거같아요! 백준 문제를 꼭 혼자 풀어보시고나서 다른 사람들은 어떤 식으로 풀었는지 확인해보시면 추후 복잡한 코드를 보다 깔끔하게 작성하실 수 있을 거에요~!

스크린샷 2024-04-01 154126

// 원주율 3.14를 정적 상수 PI로 선언과 동시에 초기화
static final double PI = 3.14;

// 정수형 원의 중심 좌표 x, y를 선언

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

클래스의 필드를 아래와 같이 private으로 선언하는 것이 객체 지향 프로그래밍의 중요한 원칙 중 하나인 캡슐화를 구현하기 위한 좋은 방법입니다. 참고해주세요!

private int x, y;
private double r;
private int height = 10;

@giwoong01 giwoong01 closed this Jul 9, 2024
@giwoong01 giwoong01 reopened this Jul 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✅ 과제 통과 조지미에게 확인을 받은 후의 상태입니다.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants