πŸ“– Problem Solution

λ°±μ€€ν”„λ‘œκ·Έλž˜λ° 2단계 1,2,3,4,5,6번 Swift

Fomagran πŸ’» 2020. 1. 16. 00:02
728x90
λ°˜μ‘ν˜•

1. 두 μ •μˆ˜ A와 Bκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, A와 Bλ₯Ό λΉ„κ΅ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

핡심 ifλ¬Έ μ“Έ μ€„μ•„λ‹ˆ?

import Foundation

let line = readLine()
let linearr = line!.components(separatedBy:" ")
let A = Int(linearr[0])!
let B = Int(linearr[1])!
if A<B {
    print("<")
}
    else if A>B{
        print(">")
    }else{
        print("==")
    }

2.μ‹œν—˜ 점수λ₯Ό μž…λ ₯λ°›μ•„ 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, λ‚˜λ¨Έμ§€ μ μˆ˜λŠ” Fλ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

핡심 1.else if μ“Έ μ€„μ•„λ‹ˆ? 2.&&μ“Έ 쀄 μ•„λ‹ˆ?

import Foundation

let line = readLine()
let score = Int(line!)!
if 90 <= score && score <= 100 {
    print("A")
}
    else if 80 <= score && score <= 89 {
        print("B")
    }else if 70 <= score && score <= 79{
        print("C")
}else if 60 <= score && score <= 69{
    print("D")
} else{
        print("F")

3.연도가 μ£Όμ–΄μ‘Œμ„ λ•Œ, μœ€λ…„μ΄λ©΄ 1, μ•„λ‹ˆλ©΄ 0을 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μœ€λ…„μ€ 연도가 4의 λ°°μˆ˜μ΄λ©΄μ„œ, 100의 λ°°μˆ˜κ°€ 아닐 λ•Œ λ˜λŠ” 400의 배수일 λ•Œ 이닀.

예λ₯Όλ“€μ–΄, 2012년은 4의 λ°°μˆ˜λΌμ„œ μœ€λ…„μ΄μ§€λ§Œ, 1900년은 4의 λ°°μˆ˜μ΄μ§€λ§Œ, 100의 배수이기 λ•Œλ¬Έμ— μœ€λ…„μ΄ μ•„λ‹ˆλ‹€.

ν•˜μ§€λ§Œ, 2000년은 400의 배수이기 λ•Œλ¬Έμ— μœ€λ…„μ΄λ‹€.

핡심 일단 κ°€μž₯ λ¨Όμ € μš°μ„ μ΄ λ˜μ•Όν•˜λŠ” 게 무엇이고 κ·Έ λ‹€μŒμ— 무엇인가λ₯Ό νŒŒμ•…ν•΄μ„œ ifλ¬Έκ³Ό else if문을 써라 - 일단은 400으둜 λ‚˜λˆ μ§€λ©΄ 무쑰건 λ˜μ•Όν•˜κ³  κ·Έ λ‹€μŒμ— 4의 배수둜 λ‚˜λˆ μ§€λŠ” 것과 λ™μ‹œμ— 100으둜 λ‚˜λˆ μ§€λ©΄ μ•ˆλ˜λŠ” 것이닀. μ•„λž˜ μ½”λ“œλŠ” 걍 쀄 쀄여보렀고 뢙여썼닀.

import Foundation

let year = Int(readLine()!)!
if   year%400 == 0{ print("1") } else if year%100 == 0 {print("0")}else if year%4 == 0{print("1")} else{print("0")}

4.μƒκ·Όμ΄λŠ” 맀일 μ•„μΉ¨ μ•ŒλžŒμ„ λ“£κ³  μΌμ–΄λ‚œλ‹€. μ•ŒλžŒμ„ λ“£κ³  λ°”λ‘œ μΌμ–΄λ‚˜λ©΄ λ‹€ν–‰μ΄κ² μ§€λ§Œ, 항상 쑰금만 더 μžλ €λŠ” 마음 λ•Œλ¬Έμ— 맀일 학ꡐλ₯Ό μ§€κ°ν•˜κ³  μžˆλ‹€.

μƒκ·Όμ΄λŠ” λͺ¨λ“  방법을 λ™μ›ν•΄λ³΄μ•˜μ§€λ§Œ, 쑰금만 더 μžλ €λŠ” λ§ˆμŒμ€ κ·Έ μ–΄λ–€ 것도 없앨 μˆ˜κ°€ μ—†μ—ˆλ‹€.

이런 상근이λ₯Ό λΆˆμŒν•˜κ²Œ 보던, μ°½μ˜μ΄λŠ” μžμ‹ μ΄ μ‚¬μš©ν•˜λŠ” 방법을 μΆ”μ²œν•΄ μ£Όμ—ˆλ‹€.

λ°”λ‘œ "45λΆ„ 일찍 μ•ŒλžŒ λ§žμΆ”κΈ°"이닀.

이 방법은 λ‹¨μˆœν•˜λ‹€. μ›λž˜ λ§žμΆ°μ ΈμžˆλŠ” μ•ŒλžŒμ„ 45λΆ„ μ•žμ„œλŠ” μ‹œκ°„μœΌλ‘œ λ°”κΎΈλŠ” 것이닀. μ–΄μ°¨ν”Ό μ•ŒλžŒ μ†Œλ¦¬λ₯Ό λ“€μœΌλ©΄, μ•ŒλžŒμ„ 끄고 쑰금 더 잘 것이기 λ•Œλ¬Έμ΄λ‹€. 이 방법을 μ‚¬μš©ν•˜λ©΄, 맀일 μ•„μΉ¨ 더 μž€λ‹€λŠ” 기뢄을 λŠλ‚„ 수 있고, 학ꡐ도 μ§€κ°ν•˜μ§€ μ•Šκ²Œ λœλ‹€.

ν˜„μž¬ 상근이가 λ§žμΆ°λ…Ό μ•ŒλžŒ μ‹œκ°μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, 창영이의 방법을 μ‚¬μš©ν•œλ‹€λ©΄, 이λ₯Ό μ–Έμ œλ‘œ 고쳐야 ν•˜λŠ”μ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

핡심 1. 00μ‹œμ—μ„œ 23μ‹œλ‘œ λ„˜μ–΄κ°ˆ λ•Œ 2.45λΆ„λ―Έλ§Œμ—μ„œ λΆ„ κ΅¬ν•˜κΈ° - μ›λž˜ λΆ„μ—μ„œ 60을 더해주고 45λ₯Ό λΉΌμ£Όκ³  μ‹œκ°„μ—μ„œ 1을 λΉΌλ©΄ λœλ‹€. 3.45λΆ„μ΄μƒμ—μ„œλŠ” κ·Έλƒ₯ λΉΌκ³  μ‹œκ°„λ„ κ·ΈλŒ€λ‘œ 두면 λœλ‹€.

import Foundation

let time = readLine()!
let linearr = time.components(separatedBy: " ")
let H = Int(linearr[0])!
let M = Int(linearr[1])!
if H == 0 && M < 45 {
    print("23 \(M+60 - 45)")
}
else if M >= 45 {
    print("\(H) \(M-45)")
} else {
    print("\(H-1) \(M+60 - 45)")
    
}

5.μ„Έ μ •μˆ˜ A, B, Cκ°€ μ£Όμ–΄μ§„λ‹€. μ΄λ•Œ, 두 번째둜 큰 μ •μˆ˜λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 

핡심 두 번째둜 큰 μˆ˜κ°€ κΌ­ 3개 μˆ«μžκ°€ λ‹€ λ‹€λ₯Έ κ²½μš°κ°€ μ•„λ‹˜. - 10 20 20 같은 경우 20이 두 번째둜 큰 κ²½μš°μž„ 40 40 40 λͺ¨λ‘ λ˜‘κ°™μ€ μˆ«μžλΌλ„ 두 번째 큰 μˆ˜λŠ” 40이닀.(이건 μ™œ μ΄λŸ¬λŠ”μ§€ λͺ¨λ₯΄κ² μŒ)

import Foundation

let number = readLine()!
let linearr = number.components(separatedBy: " ")
let a = Int(linearr[0])!
let b = Int(linearr[1])!
let c = Int(linearr[2])!

if a >= b && a >= c && b >= c{
    print(b)
}else if a >= b && a >= c && b <= c {
    print(c)
} else if b >= a && b >= c && a <= c {
    print(c)
}else if b >= a && b >= c && a >= c {
    print(a)}
else if c >= a && c >= b && a >= b {
print(a)} else if c >= a && c >= b && a <= b {
print(b)}
728x90
λ°˜μ‘ν˜•