업그레이트 (UpGreate)

- 威武不屈


  • Home

  • Categories

  • About

  • Archives

  • Tags

  • Search

SW Expert Academy - D2_1948

Posted on 2019-08-15 | In ALGORITHM

D2_1948. 날짜 계산기

문제:

  • 월 일로 이루어진 날짜를 2개 입력 받아, 두 번째 날짜가 첫 번째 날짜의 며칠째인지 출력하는 프로그램을 작성하라.
  • 월은 1 이상 12 이하의 정수이다. 각 달의 마지막 날짜는 다음과 같다.
    • 1/31, 2/28, 3/31, 4/30, 5/31, 6/30, 7/31, 8/31, 9/30, 10/31, 11/30, 12/31
    • 두 번째 날짜가 첫 번째 날짜보다 항상 크게 주어진다.

입력:

  1. 테스트 케이스 T
  2. 각 테스트 케이스에는 4개의 수가 주어진다. (월 일 형식으로 총 2개의 일자가 주어진다.)

출력:

ex)

#1 31 #2 103 #3 161

생각한 로직:

  • 월은 12월 까지 있고 각 달에 일자가 모두 주어져 있기때문에
  • 배열에 일자를 저장해 놓고 그 일자 만큼만 계산
  • 월이 같을 때, 월이 다를 때로 구분해서 풀이

코딩:

1
2
3
4
5
6
7
8
9
10
11
12
month = [0,31,28,31,30,31,30,31,31,30,31,30,31]
for tc in range(1,int(input())+1):
    m1,d1,m2,d2 = map(int,input().split())
    result=0
    if m1==m2:
        result = d2-d1+1
    else:
        result += (month[m1] - d1 + 1)
        for mth in range(m1+1,m2):
            result += month[mth]
        result += d2
    print("#{} {}".format(tc, result))
Read more »

python_리스트

Posted on 2019-08-14 | In LANGUAGE

리스트란?

  • 리스트란 값의 나열 ‘[’ 과 ‘]’ 로 감싼다.

  • 순서가 있고, 여러 종류의 값을 담을 수 있다.

    ※ 하나의 리스트 안에 문자, 숫자 둘다 담을 수 있다!!!

    • append()
    • insert()
    • index()
    • count()
    • pop()
    • remove()
    • sort()
    • reverse()

선언법

1
2
a = [1,2,3]
a = ['a',1,'b']

※ list(), set(), tuple() 을 이용해 언제든지 서로 변환 될 수 있다!

Read more »

SW Expert Academy - D2_1946

Posted on 2019-08-14 | In ALGORITHM

D2_1946. 간단한 압축 풀기

문제:

원본 문서는 너비가 10인 여러 줄의 문자열로 이루어져 있다.

문자열은 마지막 줄을 제외하고 빈 공간 없이 알파벳으로 채워져 있고 마지막 줄은 왼쪽부터 채워져 있다.

이 문서를 압축한 문서는 알파벳과 그 알파벳의 연속된 개수로 이루어진 쌍들이 나열되어 있다. (예 : A 5  AAAAA)

압축된 문서를 입력 받아 원본 문서를 만드는 프로그램을 작성하시오.

[예제] 압축된 문서의 내용

A 10 B 7 C 5

압축을 풀었을 때 원본 문서의 내용

AAAAAAAAAA BBBBBBBCCC CC

[제약사항]

  1. 압축된 문서의 알파벳과 숫자 쌍의 개수 N은1이상 10이하의 정수이다. (1 ≤ N ≤ 10)
  2. 주어지는 알파벳 Ci는 A~Z의 대문자이다. (i는 줄의 번호로 1~N까지의 수)
  3. 알파벳의 연속된 개수로 주어지는 수 Ki는 1이상 20이하의 정수이다. (1 ≤ Ki ≤ 20, i는 줄의 번호로 1~N까지의 수)
  4. 원본 문서의 너비는 10으로 고정이다.

입력:

  1. 테스트 케이스 T
  2. 각 테스트 케이스에 N
  3. N번 반복해서 Ci와 Ki가 빈칸을 사이에 두고 주어진다.

출력:

ex)

#1 AAAAAAAAAA BBBBBBBCCC CC

생각한 로직:

  • 문서의 길이는 10
  • 문제에서 설명한 그대로 입력을 받으면 문자를 그 갯수 만큼 한줄 한줄 채워서 넣는다.
  • 그렇게 하려고 했는데 생각해보니 그럴 필요가 없네 그냥 한줄 배열에 때려박고 10개씩 부르면 되겠다.

코딩:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def Mreader(Char,num):
    global result
    for k in range(num):
        result.append(Char)

def print10(result):
    for j in range(len(result)):
        if j!=0 and j%10==0:
            print()
        print(result[j],end="")
    print()

for tc in range(1,int(input())+1):
    N = int(input())
    result = list()
    for i in range(N):
        char,num = input().split()
        Mreader(char,int(num))
    print("#{}".format(tc))
    print(result)

Read more »

python_딕셔너리

Posted on 2019-08-13 | In LANGUAGE

딕셔너리란?

  • 임의의 객체 집합적 자료형이며 순서는 없고 키를 통해 값을 찾는 맵핑형이다.

선언법

1
2
3
4
5
#방법 1
d = dict(a=1,b=2,c=3)

#방법 2
d = {'a':1, 'b':2, 'c':3}

함수로 선언할 땐 =

괄호로 선언할 땐 :

Read more »

SW Expert Academy - D2_1945

Posted on 2019-08-13 | In ALGORITHM

D2_1945. 간단한 소인수분해

문제:

숫자 N은 아래와 같다.

N=2a x 3b x 5c x 7d x 11e

N이 주어질 때 a, b, c, d, e 를 출력하라.

[제약 사항]

N은 2 이상 10,000,000 이하이다.

입력:

  1. 테스트 케이스 T
  2. 각 테스트 케이스에 N

출력:

ex)

#1 3 2 2 3 1 #2 6 1 2 3 0 #3 6 4 2 0 1 #4 0 0 2 3 0 #5 0 3 4 0 1 #6 4 4 1 0 0 #7 7 3 0 3 0 #8 0 8 0 0 0 #9 0 0 2 0 0 #10 1 3 3 2 0

생각한 로직:

  • 여기에서는 소수가 정해져있다. 2, 3, 5, 7, 11 이 숫자들만 배열에 넣어놓고 나눠서 몫들을 출력하면 될것 같다.

코딩:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
decimal = [2,3,5,7,11]

for tc in range(1,int(input())+1):
    N = int(input())
    print("#{}".format(tc), end=" ")
    for i in range(len(decimal)):
        tmp = N
        cnt = 0
        while True:
            ck = cnt
            if tmp%decimal[i] == 0:
                cnt+=1
                tmp = tmp//decimal[i]
            if ck==cnt:
                break
        print(cnt,end=" ")
    print()

Read more »
1 … 20 21 22 … 32
Sik

Sik

156 posts
7 categories
30 tags
RSS
© 2021 Sik
Powered by Jekyll
Theme - NexT.Muse