deo2kim
맞왜틀
deo2kim
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • 개발
    • Infra

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
deo2kim

맞왜틀

[python] SWEA - 1946. 간단한 압축 풀기/ 1945. 간단한 소인수분해
Algorithm Problem/Python

[python] SWEA - 1946. 간단한 압축 풀기/ 1945. 간단한 소인수분해

2020. 7. 13. 21:58
반응형

1. 간단한 압축 풀기

문제 해결

1. 문자열 인덱싱 하기. D2

2. 하나의 변수를 만들고 알파벳과 그 알파벳의 갯수만큼 문자열로 더해준다.

3. 너비가 10이므로 변수를 길이가 10만큼씩 잘라서 출력해준다.

 

🌧 2번과 3번을 동시에 할 수도 있을 것 같다😶

 

소스 코드

T = int(input())
for tc in range(1, 1+T):
    n = int(input())
    document = ''
    for _ in range(n):
        word, number = input().split()
        document += word*int(number)

    print('#{}'.format(tc))

    for i in range(0, len(document), 10):
        print(document[i:i+10])
        

 

출처: SW Expert Academy

문제: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PmkDKAOMDFAUq&categoryId=AV5PmkDKAOMDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

원본 문서는 너비가 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으로 고정이다.


[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스에는 N이 주어지고 다음 줄부터 N+1줄까지 Ci와 Ki가 빈 칸을 사이에 두고 주어진다.


[출력]

각 줄은 '#t'로 시작하고, 다음 줄부터 원본 문서를 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

2. 간단한 소인수분해

문제 해결

1. 주어진 숫자를 소인수로 차례차례 나누어 준다.

2. 나누어떨어지지 않을 때까지 나누어주고 몇번 나눴는지 저장한다.

3. 저장한 결과를 출력한다.

 

🌧 

소스 코드

T = int(input())
for tc in range(1, T + 1):
    numbers = [2, 3, 5, 7, 11]
    result = []
    n = int(input())
    idx = 0
    for number in numbers:
        cnt = 0
        while True:
            if n % number == 0:
                n = n // number
                cnt += 1

            else:
                result.append(str(cnt))
                break

    print('#{} {}'.format(tc, ' '.join(result)))

 

출처: SW Expert Academy

문제: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pl0Q6ANQDFAUq&categoryId=AV5Pl0Q6ANQDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

숫자 N은 아래와 같다.

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

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


[제약 사항]

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


[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에 N 이 주어진다.


[출력]

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm Problem > Python' 카테고리의 다른 글

[python] SWEA - 1289. 원재의 메모리 복구하기  (2) 2020.07.16
[python] SWEA - 1961. 숫자 배열 회전/ 1970. 쉬운 거스름돈/ 10059. 유효기간  (0) 2020.07.14
[python] 백준 - 10799. 쇠막대기  (2) 2020.07.07
[python] 백준 - 2941. 크로아티아 알파벳  (0) 2020.07.05
[python] 백준 - 11399. ATM  (0) 2020.07.03
    'Algorithm Problem/Python' 카테고리의 다른 글
    • [python] SWEA - 1289. 원재의 메모리 복구하기
    • [python] SWEA - 1961. 숫자 배열 회전/ 1970. 쉬운 거스름돈/ 10059. 유효기간
    • [python] 백준 - 10799. 쇠막대기
    • [python] 백준 - 2941. 크로아티아 알파벳
    deo2kim
    deo2kim
    코딩 기록하기

    티스토리툴바