반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


날짜 계산 성공분류

시간 제한메모리 제한제출정답맞은 사람정답 비율

2 초 4 MB 17383 11361 9241 67.207%

문제

준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다.

지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)

우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다.

예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된다. 이유는 1 ≤ E ≤ 15 라서 범위를 넘어가기 때문이다.

E, S, M이 주어졌고, 1년이 준규가 사는 나라에서 1 1 1일때, 준규가 사는 나라에서 E S M이 우리가 알고 있는 연도로 몇 년인지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 세 수 E, S, M이 주어진다. 문제에 나와있는 범위를 지키는 입력만 주어진다.

출력

첫째 줄에 E S M으로 표시되는 가장 빠른 연도를 출력한다. 1 1 1은 항상 1이기 때문에, 정답이 음수가 나오는 경우는 없다.


E, S, M = map(int, input().split())

Y = 1

while True :
    if (Y-E) % 15 == 0 and (Y-S) % 28 == 0 and (Y-M) % 19 == 0 :
        print(Y)
        break
    Y += 1

 

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


지능형 기차 성공출처분류

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 128 MB 14864 10749 9609 77.567%

문제

최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다.

 내린 사람 수탄 사람 수1번역(출발역)2번역3번역4번역(종착역)

0 32
3 13
28 25
39 0

예를 들어, 위와 같은 경우를 살펴보자. 이 경우, 기차 안에 사람이 가장 많은 때는 2번역에서 3명의 사람이 기차에서 내리고, 13명의 사람이 기차에 탔을 때로, 총 42명의 사람이 기차 안에 있다.

이 기차는 다음 조건을 만족하면서 운행된다고 가정한다.

  1. 기차는 역 번호 순서대로 운행한다.
  2. 출발역에서 내린 사람 수와 종착역에서 탄 사람 수는 0이다.
  3. 각 역에서 현재 기차에 있는 사람보다 더 많은 사람이 내리는 경우는 없다.
  4. 기차의 정원은 최대 10,000명이고, 정원을 초과하여 타는 경우는 없다.

4개의 역에 대해 기차에서 내린 사람 수와 탄 사람 수가 주어졌을 때, 기차에 사람이 가장 많을 때의 사람 수를 계산하는 프로그램을 작성하시오.

입력

각 역에서 내린 사람 수와 탄 사람 수가 빈칸을 사이에 두고 첫째 줄부터 넷째 줄까지 역 순서대로 한 줄에 하나씩 주어진다. 

출력

첫째 줄에 최대 사람 수를 출력한다.  


A = []
people_result = 0
for _ in range(4) : 
    Out_people, In_people = map(int, input().split())
    people_result += In_people
    people_result -= Out_people
    
    A.append(people_result)

print(max(A))

 

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


ACM 호텔 성공출처다국어분류

한국어   

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 256 MB 47495 16776 14461 34.982%

문제

ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다.

문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모든 인접한 두 방 사이의 거리는 같은 거리(거리 1)라고 가정하고 호텔의 정면 쪽에만 방이 있다고 가정한다.

그림 1. H = 6 이고 W = 12 인 H × W 호텔을 간략하게 나타낸 그림

방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다. 즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다.

손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다. 다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다. 예를 들면 102 호 방보다는 301 호 방을 더 선호하는데, 102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다. 같은 이유로 102 호보다 2101 호를 더 선호한다.

여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. 첫 번째 손님은 101 호, 두 번째 손님은 201 호 등과 같이 배정한다. 그림 1 의 경우를 예로 들면, H = 6이므로 10 번째 손님은 402 호에 배정해야 한다.

입력

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수를 포함하고 있으며 각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님인지를 나타낸다(1 ≤ H, W ≤ 99, 1 ≤ N ≤ H × W). 

출력

프로그램은 표준 출력에 출력한다. 각 테스트 데이터마다 정확히 한 행을 출력하는데, 내용은 N 번째 손님에게 배정되어야 하는 방 번호를 출력한다.


T = int(input())
for i in range(T) :
    H, W, N = map(int, input().split())
    A = N % H;
    B = N // H+1
    
    if A == 0 : A = H; B -= 1
    print(A*100 + B)
for _ in range(int(input())) :
    H, W, N = map(int, input().split())
    A = N % H;
    B = N // H+1
    
    if A == 0 : A = H; B -= 1
    print(A*100 + B)

 

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


피보나치 수 성공분류

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 (추가 시간 없음) 128 MB 37235 17065 13953 47.503%

문제

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.

이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다.

n=17일때 까지 피보나치 수를 써보면 다음과 같다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n이 주어진다. n은 45보다 작거나 같은 자연수이다.

출력

첫째 줄에 n번째 피보나치 수를 출력한다.


N = int(input())

A = [0 for i in range(N+2)]
A[1] = 1

for N in range(2, N+2) :
    A[N] = A[N-1] + A[N-2]
print(A[N-1])

 

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


피보나치 수 2 다국어분류

한국어   

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 128 MB 46976 17942 15118 38.476%

문제

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.

이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다.

n=17일때 까지 피보나치 수를 써보면 다음과 같다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n이 주어진다. n은 90보다 작거나 같은 자연수이다.

출력

첫째 줄에 n번째 피보나치 수를 출력한다.


N = int(input())
A = [i for i in range(N+1)]
A[1] = 1

for i in range(2, N+1) :
    A[i] = A[i-1] + A[i-2]
    
print(A[-1])

 

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


0 = not cute / 1 = cute 성공출처분류

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 2 MB 8937 5919 5487 67.516%

문제

준희는 자기가 팀에서 귀여움을 담당하고 있다고 생각한다. 하지만 연수가 볼 때 그 의견은 뭔가 좀 잘못된 것 같았다. 그렇기에 설문조사를 하여 준희가 귀여운지 아닌지 알아보기로 했다.

입력

첫 번째 줄에 설문조사를 한 사람의 수 N (1 ≤ N ≤ 101, N은 홀수)가 주어진다.

다음 N개의 줄에는 각 줄마다 각 사람이 설문 조사에 어떤 의견을 표명했는지를 나타내는 정수가 주어진다. 0은 준희가 귀엽지 않다고 했다는 뜻이고, 1은 준희가 귀엽다고 했다는 뜻이다.

출력

준희가 귀엽지 않다는 의견이 더 많을 경우 "Junhee is not cute!"를 출력하고 귀엽다는 의견이 많을 경우 "Junhee is cute!"를 출력하라.


N = int(input())

A = []
for i in range(N) : 
    A.append(int(input()))

one_count = A.count(1)
zero_count = A.count(0)

if one_count > zero_count :
    print("Junhee is cute!")
else :
    print("Junhee is not cute!")

 

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


 실패분류

시간 제한메모리 제한제출정답맞은 사람정답 비율

0.5 초 (추가 시간 없음) 256 MB 42406 19904 15381 49.086%

문제

정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 여섯 가지이다.

  • push X: 정수 X를 큐에 넣는 연산이다.
  • pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 큐에 들어있는 정수의 개수를 출력한다.
  • empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
  • front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.


N = int(input())
Que = []
for i in range(N) :
    A = input().split()
    if A[0] == 'push' : Que.append(A[1])
    elif A[0] == 'pop' : 
        if Que : print(Que.pop(0))
        else : print(-1)
    elif A[0] == 'size' : print(len(Que))
    elif A[0] == 'empty' :
        if len(Que) == 0 : print(1)
        else : print(0)
            
    elif A[0] == 'front' :
        if len(Que) == 0 : print(-1)
        else : print(Que[0])
    
    elif A[0] == 'back' :
        if len(Que) == 0 : print(-1)
        else : print(Que[-1])

위의 코드를 넣고 돌리면 시간초과가 뜬다.

그래서, stdin을 사용해야 한다.

 

위의 코드에서 from sys import stdin과

 

N 값을 입력 받을 때 int(stdin.readline()), A = stdin.readline().split()으로 코드를 교체하였다.

 

from sys import stdin

N = int(stdin.readline())
Que = []
for i in range(N) :
    A = stdin.readline().split()

    if A[0] == 'push' : Que.append(A[1])

    elif A[0] == 'pop' : 
        if Que : print(Que.pop(0))
        else : print(-1)

    elif A[0] == 'size' : print(len(Que))

    elif A[0] == 'empty' :
        if len(Que) == 0 : print(1)
        else : print(0)
            
    elif A[0] == 'front' :
        if len(Que) == 0 : print(-1)
        else : print(Que[0])
    
    elif A[0] == 'back' :
        if len(Que) == 0 : print(-1)
        else : print(Que[-1])
반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


귀여운 수~ε٩(๑> ₃ <)۶з 성공출처분류

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 512 MB 1140 633 579 61.530%

문제

욱제는 귀여운 수~ε٩(๑> ₃ <)۶з를 좋아한다. 귀여운 수~ε٩(๑> ₃ <)۶з는 수를 이루는 각 자릿수가 등차수열[*]을 이루는 수이다. 당신은 욱제한테 귀여운 수~ε٩(๑> ₃ <)۶з 하나를 선물해주고 싶다. 수 하나가 주어졌을 때 이 수가 귀여운지 판단하는 프로그램을 짜 보자.

 

[*] 등차수열을 이루는 숫자들은, 왼쪽에서 오른쪽으로 가면서 일정한 크기(0일 수도 있음)만큼 커지거나 일정한 크기만큼 작아진다. 뭔지 모르겠으면 예제를 보고 알아보자. ㅋㅋ!

입력

정수 k(1≤k≤1018)가 주어진다. 입력은 0으로 시작하지 않는다.

출력

수가 귀여우면 "◝(⑅•ᴗ•⑅)◜..°♡ 뀌요미!!"를, 귀엽지 않으면 "흥칫뿡!! <( ̄ ﹌  ̄)>"를 따옴표 없이 출력한다.


N = list(map(int, list(input())))

if len(N) == 1 :
    print('◝(⑅•ᴗ•⑅)◜..°♡ 뀌요미!!')

else :
    value = int(N[0]) - int(N[1])
    for i in range(len(N)-1) :
        if N[i] - N[i+1] != value :
            print('흥칫뿡!! <( ̄ ﹌  ̄)>')        
            break

    else : 
        print('◝(⑅•ᴗ•⑅)◜..°♡ 뀌요미!!')

 

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


엔드게임 스포일러 출처분류

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 512 MB 1864 1467 1421 80.556%

문제

어벤져스: 엔드게임》(영어: Avengers: Endgame)은 2019년 개봉한 미국의 슈퍼히어로 영화로, 마블 코믹스의 동명 팀을 원작으로 하고 있으며, 마블 스튜디오가 제작하고, 월트 디즈니 스튜디오스 모션 픽처스가 배급하였다. 이 영화는 2012년 영화 어벤져스와, 2015년 영화 어벤져스: 에이지 오브 울트론, 2018년 영화 어벤져스: 인피니티 워의 속편이자, 마블 시네마틱 유니버스 (MCU)의 22번째 작품에 해당한다. 앤서니 루소와 조 루소가 감독하고 크리스토퍼 마커스와 스티븐 맥필리가 공동으로 각본을 썼으며, 이전의 MCU 영화에보다도 많은 배우와 앙상블 캐스트들이 등장한다.

그래서 욱제는 이 문제에서 엔드게임 스포일러를 하려고 한다.

입력

어벤져스: 엔드게임의 줄거리가 주어진다.

출력

어벤져스: 엔드게임의 영문 표기를 출력한다.

예제 입력 1 복사

타노스가 전 우주의 모든 생명체 절반을 제거하기 위해 인피니티 건틀렛을

예제 출력 1 복사

문제의 답을 출력한다.


print('Avengers: Endgame')

 

출력으로 Avengers: Endgame을 출력하면 된다.

반응형
반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


고무오리 디버깅 성공출처

시간 제한메모리 제한제출정답맞은 사람정답 비율

1 초 512 MB 286 163 150 67.568%

문제

백준 문제 풀이에 힘들어하는 수진이를 위해 민우는 문제해결에 도움이 되는 고무오리를 준비했다. 민우가 준비한 고무오리는 신비한 능력이 존재하는데, 최근에 풀던 백준 문제를 해결해주는 능력이다. 신비한 고무오리와 함께 수진이의 백준 풀이를 도와주자! 고무오리의 사용법은 다음과 같다 - "고무오리 디버깅 시작" 이라고 외친다 - 문제들을 풀기 시작한다 - 고무오리를 받으면 최근 풀던 문제를 해결한다 - "고무오리 디버깅 끝" 이라고 외치면 문제풀이를 종료한다. 하지만 고무오리에는 치명적인 문제가 있는데, 풀 문제가 없는데 사용한다면 고무오리는 체벌로 두 문제를 추가한다는 점이다.

입력

첫 번째 줄에 "고무오리 디버깅 시작"이라고 주어진다. 두 번째 줄부터 "고무오리" 또는 "문제"가 주어진다. 이는 "고무오리 디버깅 끝"이 주어질 때까지 반복한다.

출력

고무오리 디버깅이 끝날 때, 주어진 문제를 수진이가 해결하였는지 여부에 따라 남은 문제 없이 모든 문제를 해결하였으면 "고무오리야 사랑해"을 출력하고 하나라도 문제가 남았다면 "힝구"를 출력하라.


A = input()
if A == '고무오리 디버깅 시작' :
    pro = 0
    while(True) :
        B = input()
        if B == '고무오리 디버깅 끝' :
            if pro == 0 :
                print('고무오리야 사랑해')
                break
            else :
                print('힝구')
                break
        elif B == '문제' :
            pro += 1
        elif B == '고무오리' and pro == 0 :
            pro += 2
        elif B == '고무오리' and pro != 0 :
            pro -= 1

 

반응형

+ Recent posts