덩치 구하기: Java를 활용한 덩치 등수 계산기
안녕하세요! 오늘도 프로그래밍의 매력을 느끼며 블로그에 찾아와주신 여러분을 환영합니다. 이번 포스트에서는 자바(Java)를 이용하여 사람들이 자신의 덩치 등수를 계산할 수 있는 흥미로운 프로그램을 만들어 보도록 하겠습니다. 덩치라니, 물리적인 크기를 떠나서 우리의 신체 비율과 사회적 관점까지 다룰 수 있는 주제죠. 자 그럼, 본격적으로 다뤄볼까요?
프로젝트 개요
이 프로그램은 N명의 학생들의 몸무게와 키를 비교하여 각 학생의 덩치 등수를 매기는 시스템입니다. 쉽게 말하자면, 각 학생의 덩치가 다른 학생들보다 얼마나 많은지를 기준으로 순위를 매기는 것이죠. 이는 특히 체육 수업이나 다양한 활동에서 자신의 신체적 특성을 이해하는 데 도움이 될 수 있습니다.
코드 분석
자, 이제 코드를 살펴보면서 어떤 방식으로 덩치 등수를 계산하는지 알아보겠습니다. 아래는 해당 기능을 구현한 Java 코드입니다.
package com.baek.algo.step11;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Q7568 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
int[][] p = new int[n][3];
int k = 1;
int cnt = 0;
for(int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(bf.readLine(), " ");
for(int j = 0; j < 2; j++) {
p[i][j] = Integer.parseInt(st.nextToken());
}
}
for(int i = 0; i < n; i++) {
int weight1 = p[i][0];
int height1 = p[i][1];
for(int j = 0; j < n; j++) {
if(i != j) {
int weight2 = p[j][0];
int height2 = p[j][1];
if(weight1 < weight2 && height1 < height2) {
cnt = cnt + 1;
}
}
}
p[i][2] = k + cnt;
cnt = 0;
System.out.print(p[i][2] + " ");
}
bf.close();
}
}
코드 설명
- 입력 받기:
BufferedReader
와StringTokenizer
를 이용하여 입력을 받습니다. 첫 번째 줄에서는 전체 사람의 수(N)를 입력받고, 이후 각각의 몸무게와 키를 입력받아 배열에 저장합니다. - 등수 계산 로직: 첫 번째 이중 루프에서는 각 학생의 몸무게와 키를 저장하고, 두 번째 이중 루프에서는 다른 모든 학생들과 비교를 진행합니다. 만약 현재 학생보다 몸무게와 키 모두 큰 학생이 있다면, 카운트합니다.
- 등수 부여: 카운트된 황새가 큰 학생의 수 (k)로 상세히 기록되어, k + 1을 통해 현재 학생의 등수를 결정하게 됩니다.
- 결과 출력: 각 학생의 덩치 등수를 차례로 출력합니다.
결과 확인
이 코드를 실행하면 각 학생의 덩치 등수가 한 줄에 공백으로 구분하여 출력됩니다. 예를 들어, 입력 값으로 다음과 같은 데이터가 들어온다면:
5
55 185
58 183
88 186
60 175
46 155
출력은 다음과 같을 것입니다:
2 2 1 2 5
마무리하며
이번 포스트에서는 Java를 통해 간단하면서도 흥미로운 덩치 등수 계산기를 만드는 방법에 대해 알아보았습니다. 이런 시스템은 단지 신체적 데이터를 비교하는 데 그치지 않고, 타인과의 비교를 통해 자기 인식을 돕는 데 유용하게 활용될 수 있습니다. 여러분도 자신만의 프로젝트를 통해 프로그래밍의 즐거움을 느껴보시길 바랍니다!
추가적으로 궁금한 사항이나 피드백이 있다면 언제든지 댓글로 남겨주세요~ 여러분의 응원은 큰 힘이 됩니다! 다음 포스트에서 또 만나요!
'개발' 카테고리의 다른 글
JNDI 설정 단위 테스트: Spring Framework에서의 효과적인 접근 방법 (1) | 2024.11.13 |
---|---|
블랙잭 알고리즘으로 M에 가까운 카드 조합 찾기 (1) | 2024.11.13 |
자바로 자연수의 생성자 찾기 프로그램 만들기 (0) | 2024.11.13 |
효율적인 정렬 알고리즘 구현과 최적화 전략 배우기: 자바로 백준 2751번 문제 해결하기 (0) | 2024.11.13 |
버블 정렬 알고리즘으로 오름차순 정렬 구현하기 (2) | 2024.11.13 |