💻STUDY/BOJ

[BOJ] Bronze V 부수기: 아홉번째 날

coldNoodlePigeon 2022. 1. 4.
  • 코딩 초보. 효율적인 코드 구현이 아닐 수 있습니다. 
  • 구현언어: Python , C99 
  • 푼 문제:  14652,14928,15439,15727,15733
  • 못 푼 문제: 0개


14652. 나는 행복합니다~

당신은 관중석의 크기와 욱제 자리의 번호를 알고 있다. 욱제가 잃어버린 자리는 어디일까? 자리를 찾아서 욱제에게 알려주도록 하자! 

 

1.C99

#include <stdio.h>
main() {
    int n, m, k;
    scanf("%d %d %d", &n, &m, &k);
    printf("%d %d", k / m, k % m); 
}

 

2.Python

n,m,k=map(int,input().split())
print("%d %d" %(k//m,k%m))

 그리고..뻘짓한 코드도 올리겠다. 

n,m,k=map(int,input().split())
for i in range(0,n):
    for j in range(0,m):
        k=k-1
        if (k==0):
            break
    if (k==0):
        break 
print("%d %d" %(i,j+1))

이러면 당연하게도 시간 초과가 뜬다!!ㅋ.. 

 

해결 방법! n*m의 타일에서 왼쪽 상단부터 0,1,2,..로 순서대로 숫자를 배정한다면, k번째 타일의 위치를 찾기 위해서는 가로(m)의 위치의 경우 k%m. 세로(n)의 위치의 경우 k//m. 복잡하게 생각하지 맙시다. (단순 사칙연산 문제였어..) 


14928. 큰 수 (BIG)

제연이는 그의 생일(2000년 3월 3일)을 기념해 자신이 가장 좋아하는 수를 20000303으로 나눈 나머지를 구해 그 수만큼 잠을 자기로 했다. 제연이가 얼마나 잠을 잘 수 있을지 구하자. 

 

1.C99

C언어로 어떻게 구현하지.. 좀 더 고민. 

 

2.Python

n=int(input())
print(n%20000303)

파이썬 너무 간단해서 편하다. 


15439. Vera and Outfits

Vera owns N tops and N pants. The i-th top and i-th pants have colour i, for 1 ≤ i ≤ N, where all N colours are different from each other.

An outfit consists of one top and one pants. Vera likes outfits where the top and pants are not the same colour.

How many different outfits does she like? 

 

1.C99

#include <stdio.h>
main() {
    int n;
    scanf("%d", &n); 
    printf("%d", n * (n - 1)); 
}

 

2.Python

n=int(input())
print(n*(n-1))

15727. 조별과제를 하려는데 조장이 사라졌다. 

3학년 1학기를 재학 중인 성우는 ‘빨간눈 초파리의 뒷다리 털의 개수와 파인애플 껍질의 이해’라는 과목을 수강 중이다. 기말고사를 맞이하여 교수님은 수강생들에게 조별과제를 내주었고, 그 내용은 다음과 같다.

중간고사 이전에 배운 빨간눈 초파리의 뒷다리 털의 개수를 구하는 방법을 이용하여, 파인애플 껍질의 두께를 구하는 공식을 과학적인 근거와 함께 A4용지 10장 이상으로 제출하시오. [30%]

하지만 성우의 조 조장인 민건은 과제 내용을 듣자마자 집으로 도망쳐 버렸고, 성우는 민건이를 찾기 위해 떠난다. 성우는 1분에 1에서 5까지의 거리를 이동할 수 있다. 성우가 있는 곳으로부터 민건이의 집까지 거리가 주어졌을 때, 최대한 빨리 찾을 경우, 정확히 몇 분만에 민건이를 찾을 수 있는지 출력하는 프로그램을 작성하시오.

 

1.C99

#include <stdio.h>
#include <math.h>
main() {
    float n;
    scanf("%f", &n);
    printf("%g", ceil(n / 5)); 
}

math.h 라이브러리를 추가하여 ceil()함수를 사용하였다. 실수형으로 값을 가져오고 return하므로 n을 float형으로 지정해주었다! (scanf 할때 %f로 받아오는거 주의!) 소수점 뒷자리를 빼고 싶어서 출력은 %g로 하였다. 

 

2.Python

import math 
n=int(input())
print(math.ceil(n/5))

math 라이브러리를 import하여 math.ceil() 함수를 사용하였다. 역시 파이썬은 편하다.. 


15733. 나는 누구인가

당신은 지금 코딩을 하고있다. 그럼 당신은 어떤 사람인가. 

 

1.Python

print("I'm Sexy")

문제가 너무 재치있다.


 

댓글