www.acmicpc.net/problem/7568

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net


문제 해결을 위한 과정

문제를 잘 살펴보면 자신보다 몸무게 그리고 키 모두 큰 사람의 수 + 1이 자신의 덩치 등수가 되는 것을 알 수 있습니다.

따라서 입력받은 몸무계와 키를 각각의 사람마다 묶어서 리스트에 저장해준 후 자신보다 몸무게 그리고 키가 모두 큰 사람의 수를 세는 것으로 쉽게 해결할 수 있습니다. 


문제 해결을 위한 팁

문제의 조건에서 데이터의 개수인 N이 50이하인것을 확인할 수 있습니다. 따라서 O(N^2)의 시간 복잡도를 가진 알고리즘을 적용해도 해결할 수 있습니다.


소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
= int(input())
 
data = [] # 입력받은 정보를 저장할 리스트 data
ans = [] # 등수정보를 저장할 리스트 ans
for i in range(n):
    a, b = map(int, input().split())
    data.append((a, b)) # 몸무계와 키를 묶어서 append 해줌
 
for i in range(n):
    count = 0
    for j in range(n):
        if data[i][0< data[j][0and data[i][1< data[j][1]: # 몸무게와 키 모두 자신보다 큰 사람의 수를 센다
            count += 1 
    ans.append(count + 1# 덩치 등수는 자신보다 몸무계 키 모두 큰 사람의 수 + 1 이므로 count + 1을 ans에 append한다.
 
for d in ans:
    print(d,end=" ")
cs

www.acmicpc.net/problem/2742

 

2742번: 기찍 N

자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

www.acmicpc.net


문제 해결을 위한 과정

앞선 2741번을 거꾸로 출력을 해주면 되는 문제입니다. 따라서 2741번 소스코드에 n을 빼주는 식으로 해결을 하면 됩니다.


소스코드

 

1
2
3
4
= int(input())
 
for i in range(n):
    print(n-i)
cs

www.acmicpc.net/problem/2741

 

2741번: N 찍기

자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

www.acmicpc.net


문제 해결을 위한 과정

이 문제는 하나의 for문을 이용하여 쉽게 해결할 수 있습니다. Python의 경우 print()에 기본적으로 개행이 들어있다는 것을 알면 쉽게 해결할 수 있습니다.


소스코드
1
2
3
4
= int(input())
 
for i in range(1, n+1):
    print(i)
cs

www.acmicpc.net/problem/2439

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net


문제 해결을 위한 과정

앞선 2438번 문제와 동일하지만 각 행마다 n-1개만큼의 공백이 들어감을 주의하며 해결한다.


소스코드

 

1
2
3
4
5
6
7
8
= int(input())
 
for i in range(1, n+1):
    for j in range(n-i):
        print(" ",end="")
    for j in range(i):
        print("*", end="")
    print()
cs

+ Recent posts