https://www.acmicpc.net/problem/24263

(μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… λ¬Έμ œλŠ” μ‹œκ°„ λ³΅μž‘λ„κ°€ 무엇인지 ν™•μΈν•˜κ³  풀어보기)

 

문제

 

μ˜€λŠ˜λ„ μ„œμ€€μ΄λŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰μ‹œκ°„ μˆ˜μ—… 쑰ꡐλ₯Ό ν•˜κ³  μžˆλ‹€. μ•„λΉ κ°€ μˆ˜μ—…ν•œ λ‚΄μš©μ„ 학생듀이 잘 μ΄ν•΄ν–ˆλŠ”μ§€ 문제λ₯Ό ν†΅ν•΄μ„œ ν™•μΈν•΄λ³΄μž.

μž…λ ₯의 크기 n이 주어지면 MenOfPassion μ•Œκ³ λ¦¬μ¦˜ μˆ˜ν–‰ μ‹œκ°„μ„ 예제 좜λ ₯κ³Ό 같은 λ°©μ‹μœΌλ‘œ 좜λ ₯ν•΄λ³΄μž.

MenOfPassion μ•Œκ³ λ¦¬μ¦˜μ€ λ‹€μŒκ³Ό κ°™λ‹€.

MenOfPassion(A[], n) {
    sum <- 0;
    for i <- 1 to n - 1
        for j <- i + 1 to n
            sum <- sum + A[i] × A[j]; # μ½”λ“œ1
    return sum;
}

 

μž…λ ₯

첫째 쀄에 μž…λ ₯의 크기 n(1 ≤ n ≤ 500,000)이 주어진닀.

 

좜λ ₯

첫째 쀄에 μ½”λ“œ1 의 μˆ˜ν–‰ 횟수λ₯Ό 좜λ ₯ν•œλ‹€.

λ‘˜μ§Έ 쀄에 μ½”λ“œ1의 μˆ˜ν–‰ 횟수λ₯Ό λ‹€ν•­μ‹μœΌλ‘œ λ‚˜νƒ€λ‚΄μ—ˆμ„ λ•Œ, μ΅œκ³ μ°¨ν•­μ˜ 차수λ₯Ό 좜λ ₯ν•œλ‹€. 단, λ‹€ν•­μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μ—†κ±°λ‚˜ μ΅œκ³ μ°¨ν•­μ˜ μ°¨μˆ˜κ°€ 3보닀 크면 4λ₯Ό 좜λ ₯ν•œλ‹€.

 

예제 μž…λ ₯1 예제 좜λ ₯1
7 7
1

 

μ½”λ“œ1 이 21회 μˆ˜ν–‰λ˜κ³  μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ΄ n²μ— λΉ„λ‘€ν•œλ‹€.

 

μ†ŒμŠ€ μ½”λ“œ
# 문제 μ‹œκ°ν™”
n = int(input())
sum = 0
count = 0

for i in range(1,n):
    for j in range(i+1,n+1):
        sum += (i * j)    # μ½”λ“œ 1
        count += 1
        print("{:^4}+({}*{})={:^4} ({:^2}번 μˆ˜ν–‰)\t".format(sum-(i*j),i,j,sum,count), end="   ")
    print()
# μ •λ‹΅ μ½”λ“œ
n = int(input())

print(int(n*(n-1)/2))
print(2)

 

풀이

문제 μ‹œκ°ν™”

  • 첫 번째 for문은 총 n번 μˆ˜ν–‰
  • 두 번째 for문은 n-i번 μˆ˜ν–‰
    • i=1인 경우, n-1번 μˆ˜ν–‰
    • i=2인 경우, n-2번 μˆ˜ν–‰
  • μˆ˜ν–‰ 횟수 곡식을 첫 번째 쀄에 좜λ ₯
    • 첫 번째 for문이 μˆ˜ν–‰λœ 횟수 nκ³Ό 두 번째 for문이 μˆ˜ν–‰λœ 횟수 n-iλ₯Ό κ³±ν•œ κ°’ (쀑볡을 μ œκ±°ν•˜κΈ° μœ„ν•΄ 2둜 λ‚˜λˆ„κΈ°)
  • μœ„μ˜ κ³΅μ‹μ—μ„œ μ΅œκ³ μ°¨ν•­μ˜ 차수인 2λ₯Ό 두 번째 쀄에 좜λ ₯
    • μ‹œκ°„ λ³΅μž‘λ„(=μ½”λ“œ1의 μˆ˜ν–‰νšŸμˆ˜)λŠ” n*(n-1)/2μ΄λ―€λ‘œ μ΅œκ³ μ°¨ν•­μ˜ μ°¨μˆ˜λŠ” 2

 

이전 ν¬μŠ€νŒ…κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μ‹œκ°„ λ³΅μž‘λ„μ— λŒ€ν•΄ μ•Œλ©΄ μ‰½κ²Œ ν’€ 수 μžˆλŠ” λ¬Έμ œμ˜€λ‹€. μ΅μˆ™ν•œ μ–Έμ–΄λ‘œ for문이 총 λͺ‡ 번 μˆ˜ν–‰λ˜λŠ”μ§€λ₯Ό μ‹œκ°ν™”ν•΄λ³΄λ©΄ 쒋을 것 κ°™λ‹€.

https://www.acmicpc.net/problem/24263

(μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… λ¬Έμ œλŠ” μ‹œκ°„ λ³΅μž‘λ„κ°€ 무엇인지 ν™•μΈν•˜κ³  풀어보기)

 

문제

 

μ˜€λŠ˜λ„ μ„œμ€€μ΄λŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰μ‹œκ°„ μˆ˜μ—… 쑰ꡐλ₯Ό ν•˜κ³  μžˆλ‹€. μ•„λΉ κ°€ μˆ˜μ—…ν•œ λ‚΄μš©μ„ 학생듀이 잘 μ΄ν•΄ν–ˆλŠ”μ§€ 문제λ₯Ό ν†΅ν•΄μ„œ ν™•μΈν•΄λ³΄μž.

μž…λ ₯의 크기 n이 주어지면 MenOfPassion μ•Œκ³ λ¦¬μ¦˜ μˆ˜ν–‰ μ‹œκ°„μ„ 예제 좜λ ₯κ³Ό 같은 λ°©μ‹μœΌλ‘œ 좜λ ₯ν•΄λ³΄μž.

MenOfPassion μ•Œκ³ λ¦¬μ¦˜μ€ λ‹€μŒκ³Ό κ°™λ‹€.

MenOfPassion(A[], n) {
    sum <- 0;
    for i <- 1 to n
        sum <- sum + A[i]; # μ½”λ“œ1
    return sum;
}

 

μž…λ ₯

첫째 쀄에 μž…λ ₯의 크기 n(1 ≤ n ≤ 500,000)이 주어진닀.

 

좜λ ₯

첫째 쀄에 μ½”λ“œ1 의 μˆ˜ν–‰ 횟수λ₯Ό 좜λ ₯ν•œλ‹€.

λ‘˜μ§Έ 쀄에 μ½”λ“œ1의 μˆ˜ν–‰ 횟수λ₯Ό λ‹€ν•­μ‹μœΌλ‘œ λ‚˜νƒ€λ‚΄μ—ˆμ„ λ•Œ, μ΅œκ³ μ°¨ν•­μ˜ 차수λ₯Ό 좜λ ₯ν•œλ‹€. 단, λ‹€ν•­μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μ—†κ±°λ‚˜ μ΅œκ³ μ°¨ν•­μ˜ μ°¨μˆ˜κ°€ 3보닀 크면 4λ₯Ό 좜λ ₯ν•œλ‹€.

 

예제 μž…λ ₯1 예제 좜λ ₯1
7 7
1

 

→ μ½”λ“œ 1이 7회 μˆ˜ν–‰λ˜κ³  μˆ˜ν–‰ μ‹œκ°„μ΄ n에 λΉ„λ‘€ν•œλ‹€.

 

μ†ŒμŠ€ μ½”λ“œ
# 문제 μ‹œκ°ν™”
n = int(input())
sum = 0

for i in range(1,n+1):
    sum += i    # μ½”λ“œ 1
    print(sum-i, "+", i, "=", sum, "\t", i,"번 μˆ˜ν–‰")
# μ •λ‹΅ μ½”λ“œ
n = int(input())

print(n)
print(1)

 

풀이

문제 μ‹œκ°ν™”

  • λ¬Έμ œμ—μ„œ μ½”λ“œ1은 총 n번 μˆ˜ν–‰
  • μž…λ ₯의 크기 n을 첫 번째 쀄에 좜λ ₯
  • μ΅œκ³ μ°¨ν•­μ˜ 차수인 1을 두 번째 쀄에 좜λ ₯
    • μ‹œκ°„ λ³΅μž‘λ„(=μ½”λ“œ1의 μˆ˜ν–‰νšŸμˆ˜)λŠ” nμ΄λ―€λ‘œ μ΅œκ³ μ°¨ν•­μ˜ μ°¨μˆ˜λŠ” 1

 

μ‹œκ°„λ³΅μž‘λ„κ°€ 뭔지 λͺ°λžμ„ λ•ŒλŠ” 문제 이해가 μ•„μ˜ˆ μ•ˆλλŠ”λ° κ°œλ…μ„ μ•Œκ³  λ‚˜μ„œ ν‘Έλ‹ˆκΉŒ μ‰½κ²Œ ν’€ 수 μžˆμ—ˆλ‹€. 일단 문제의 λ‚΄μš©μ„ μ‹œκ°ν™”ν•΄μ„œ μ½”λ“œκ°€ 총 λͺ‡ 번 μˆ˜ν–‰λ˜λŠ”μ§€ μ•Œλ©΄ μ‰½κ²Œ ν’€ 수 μžˆλ‹€!!!

+ Recent posts