πŸ…ΏοΈ Python_

βš”οΈ Java vs Python 문법 비ꡐ: 점수 계산 예제둜 μ΄ν•΄ν•˜λŠ” 차이점

CodeLoge 2025. 6. 9. 19:43

βœ… νŒŒμ΄μ¬μ€ μ–΄λ–€ μ–Έμ–΄?

 

1️⃣ 인터프리터 μ–Έμ–΄ : μ½”λ“œλ₯Ό ν•œ 쀄씩 해석 → λŒ€ν™”ν•˜λ“― μ‹€ν–‰ κ°€λŠ₯

2️⃣ 슀크립트 μ–Έμ–΄ : 비ꡐ적 가볍고 λΉ λ₯΄κ²Œ μ‹€ν–‰

3️⃣ 동적 타이핑 : λ³€μˆ˜ μ„ μ–Έ μ‹œ νƒ€μž… μ§€μ • λΆˆν•„μš” (type() ν•¨μˆ˜λ‘œ 확인 κ°€λŠ₯)

4️⃣ 객체지ν–₯ 지원 : 클래슀λ₯Ό ν†΅ν•œ μΊ‘μŠν™” 및 상속 κ°€λŠ₯

5️⃣ 리슀트 = μžλ°” λ°°μ—΄ κ°œλ…κ³Ό μœ μ‚¬ + μŠ¬λΌμ΄μ‹± κ°€λŠ₯ (λ²”μœ„ μ§€μ • μ ‘κ·Ό)

6️⃣ ν•¨μˆ˜ vs λ©”μ„œλ“œ ν•¨μˆ˜λŠ” 독립, λ©”μ„œλ“œλŠ” 주체(객체)κ°€ 있음

7️⃣ λ‚΄μž₯ ν•¨μˆ˜ κ°•λ ₯ : max(), min(), len() λ“± κ°•λ ₯ν•˜κ³  μ‚¬μš© 편리


βœ… JAVA μ½”λ“œ

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        // μž…λ ₯ λ°›κΈ° μœ„ν•œ Scanner 객체 생성
        Scanner sc = new Scanner(System.in);

        // 학생 수 λ³€μˆ˜ μ„ μ–Έ
        int studentNum = 0;

        // 2 이상 1000 μ΄ν•˜μ˜ μ •μˆ˜λ§Œ 받을 수 μžˆλ„λ‘ 반볡
        while (true) {
            studentNum = sc.nextInt();
            if (2 <= studentNum && studentNum <= 1000) {
                break;
            } else {
                continue;
            }
        }

        // 학생 점수λ₯Ό μ €μž₯ν•  λ°°μ—΄ 생성
        int[] score = new int[studentNum];

        // 학생 수만큼 점수 μž…λ ₯ λ°›κΈ°
        for (int i = 0; i < studentNum; i++) {
            score[i] = sc.nextInt();
        }

        // μ΅œλŒ“κ°’, μ΅œμ†Ÿκ°’ μ΄ˆκΈ°ν™”
        int max = score[0];
        int min = score[0];

        // 점수 λ°°μ—΄ μˆœνšŒν•˜λ©΄μ„œ μ΅œλŒ“κ°’/μ΅œμ†Ÿκ°’ κ°±μ‹ 
        for (int i = 1; i < studentNum; i++) {
            if (max < score[i]) {
                max = score[i];
            }
            if (min > score[i]) {
                min = score[i];
            }
        }

        // 점수 μ°¨ 계산
        int gap = max - min;

        // κ²°κ³Ό 좜λ ₯
        System.out.println(gap);

        // μŠ€μΊλ„ˆ λ‹«κΈ° (μžμ› 정리)
        sc.close();
    }
}

βœ… PYTHON μ½”λ“œ

# μœ νš¨ν•œ 학생 수λ₯Ό μž…λ ₯받을 λ•ŒκΉŒμ§€ 반볡
while True:
    student_num = int(input())  # μž…λ ₯값을 μ •μˆ˜λ‘œ λ³€ν™˜
    if 2 <= student_num <= 1000:
        break
    else:
        continue  # μœ νš¨ν•˜μ§€ μ•ŠμœΌλ©΄ 반볡 계속

# 점수λ₯Ό μ €μž₯ν•  리슀트 μ„ μ–Έ
scores = []

# 학생 수만큼 점수 μž…λ ₯ λ°›κΈ°
for _ in range(student_num):
    score = int(input())
    scores.append(score)  # λ¦¬μŠ€νŠΈμ— 점수 μΆ”κ°€

# μ΅œλŒ“κ°’κ³Ό μ΅œμ†Ÿκ°’ μ΄ˆκΈ°ν™” (첫 번째 점수둜)
max_score = scores[0]
min_score = scores[0]

# λ‚˜λ¨Έμ§€ 점수λ₯Ό μˆœνšŒν•˜λ©΄μ„œ μ΅œλŒ“κ°’/μ΅œμ†Ÿκ°’ κ°±μ‹ 
for s in scores[1:]:
    if s > max_score:
        max_score = s
    if s < min_score:
        min_score = s

# 점수 μ°¨ 계산
gap = max_score - min_score

# κ²°κ³Ό 좜λ ₯
print(gap)

βœ… max() / min()을 ν™œμš©ν•œ Python μ½”λ“œ

# μœ νš¨ν•œ 학생 수λ₯Ό μž…λ ₯받을 λ•ŒκΉŒμ§€ 반볡
while True:
    student_num = int(input())  # μ •μˆ˜λ‘œ μž…λ ₯
    if 2 <= student_num <= 1000:
        break

# 학생 점수λ₯Ό μž…λ ₯λ°›μ•„ 리슀트둜 ꡬ성
scores = [int(input()) for _ in range(student_num)]  # 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜ μ‚¬μš©

# μ΅œλŒ“κ°’κ³Ό μ΅œμ†Ÿκ°’μ„ λ‚΄μž₯ ν•¨μˆ˜λ‘œ ν•œ 쀄에 계산
gap = max(scores) - min(scores)  # max(), min()은 리슀트 전체 쀑 κ°€μž₯ 큰/μž‘μ€ κ°’ λ°˜ν™˜

# κ²°κ³Ό 좜λ ₯
print(gap)

βœ… Java vs Python 차이 μš”μ•½ (점수차 계산 μ½”λ“œ 기반)

ν•­λͺ© Java Python
μ–Έμ–΄ μ’…λ₯˜ 컴파일 μ–Έμ–΄ (정적 타이핑) 인터프리터 μ–Έμ–΄ (동적 타이핑)
νƒ€μž… μ„ μ–Έ int, String λ“± λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έ ν•„μš” λ³€μˆ˜ μ„ μ–Έ μ‹œ νƒ€μž… λͺ…μ‹œ μ—†μŒ (type()으둜 확인)
μž…λ ₯ 처리 Scanner sc = new Scanner(System.in) input() μ‚¬μš©, int(input())둜 λ³€ν™˜
λ°°μ—΄ μžλ£Œν˜• int[] score = new int[n] scores = [] λ¦¬μŠ€νŠΈ μ‚¬μš©
λ°°μ—΄ μΆ”κ°€ 방식 인덱슀둜 직접 ν• λ‹Ή (score[i] = ...) .append()둜 λ¦¬μŠ€νŠΈμ— μΆ”κ°€
μ΅œλŒ“κ°’/μ΅œμ†Ÿκ°’ 직접 반볡문으둜 비ꡐ 반볡문 or max(), min() λ‚΄μž₯ ν•¨μˆ˜ μ‚¬μš© κ°€λŠ₯
반볡문 ꡬ쑰 for (int i = 0; i < n; i++) for i in range(n) λ˜λŠ” 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜
좜λ ₯ 방식 System.out.println() print()
μ½”λ“œ κ°„κ²°μ„± 절차적, λͺ…μ‹œμ  (κΈΈμ§€λ§Œ λͺ…ν™•) κ°„κ²°ν•˜κ³  직관적인 문법 (μ§§κ³  읽기 쉬움)

πŸ’‘ μΆ”κ°€ 관점 μš”μ•½

 

1️⃣ Python은 μ½”λ“œλŸ‰μ΄ 적고 κ°„κ²°

2️⃣ JavaλŠ” μ •ν˜•ν™”λœ ꡬ쑰둜 큰 ν”„λ‘œμ νŠΈμ— 유리

3️⃣ Python은 max(), min() 같은 λ‚΄μž₯ ν•¨μˆ˜λ‘œ λ°˜λ³΅μ„ λŒ€μ²΄ κ°€λŠ₯

4️⃣ JavaλŠ” νƒ€μž… μ•ˆμ •μ„±μ΄ λ†’κ³  IDE μžλ™μ™„μ„±μ— 유리