Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

문제 4

문제:

콘솔에서 쉼표로 구분된 숫자 시퀀스를 입력받아 모든 숫자를 포함하는 리스트와 튜플을 생성하는 프로그램을 작성하십시오. 다음과 같은 입력이 프로그램에 제공된다고 가정합니다:

34,67,55,33,12,98

그러면 출력은 다음과 같아야 합니다:

['34', '67', '55', '33', '12', '98']
('34', '67', '55', '33', '12', '98')

힌트:

질문에 입력 데이터가 제공되는 경우 콘솔 입력으로 간주해야 합니다. tuple() 메소드는 리스트를 튜플로 변환할 수 있습니다.


주요 저자 솔루션: 파이썬 2

values = raw_input()
l = values.split(",")
t = tuple(l)
print l
print t

내 솔루션: 파이썬 3

lst = input().split(',')  # 입력은 문자열로 받아지고 문자열이므로 내장 메소드 split을 가집니다.
                          # split 함수 안의 ','는 ','를 찾을 때마다 분할하고
                          # 입력을 lst 변수에 리스트로 저장합니다.

tpl = tuple(lst)          # tuple 메소드는 리스트를 튜플로 변환합니다.

print(lst)
print(tpl)

'''솔루션 작성자: minnielahoti
'''
print(tuple(input("쉼표로 구분된 숫자 시리즈를 입력하세요:").split(',')))

문제 5

문제:

최소 두 개의 메소드를 가진 클래스를 정의하십시오:

  • getString: 콘솔 입력에서 문자열을 가져옵니다.
  • printString: 문자열을 대문자로 인쇄합니다.

또한 클래스 메소드를 테스트하기 위한 간단한 테스트 함수를 포함하십시오.

힌트:

init 메소드를 사용하여 일부 매개변수를 생성하십시오.


주요 저자 솔루션: 파이썬 2

class InputOutString(object):
    def __init__(self):
        self.s = ""

    def get_string(self):
        self.s = raw_input()

    def print_string(self):
        print self.s.upper()

str_obj = InputOutString()
str_obj.get_string()
str_obj.print_string()

내 솔루션: 파이썬 3

class IOstring():
    def get_string(self):
        self.s = input()

    def print_string(self):
        print(self.s.upper())

xx = IOstring()
xx.get_string()
xx.print_string()

문제 6

문제:

주어진 공식에 따라 값을 계산하고 인쇄하는 프로그램을 작성하십시오:

Q = [(2 * C * D)/H]의 제곱근

다음은 C와 H의 고정 값입니다:

C는 50입니다. H는 30입니다.

D는 쉼표로 구분된 시퀀스로 프로그램에 입력해야 하는 변수입니다. 예를 들어 다음과 같은 쉼표로 구분된 입력 시퀀스가 프로그램에 제공된다고 가정합니다:

100,150,180

프로그램의 출력은 다음과 같아야 합니다:

18,22,24

힌트:

받은 출력이 십진수 형태인 경우 가장 가까운 값으로 반올림해야 합니다 (예: 받은 출력이 26.0이면 26으로 인쇄해야 함). 질문에 입력 데이터가 제공되는 경우 콘솔 입력으로 간주해야 합니다.


주요 저자 솔루션: 파이썬 2

import math
c = 50
h = 30
value = []
items = [x for x in raw_input().split(',')]
for d in items:
    value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))

print ','.join(value)

내 솔루션: 파이썬 3

from math import sqrt # *를 사용하여 모두 가져오는 것은 좋지 않으므로 특정 함수만 가져옵니다.
                      # 나쁜 습관입니다.

C,H = 50,30

def calc(D):
    return sqrt((2*C*D)/H)

D = [int(i) for i in input().split(',')] # 쉼표 위치에서 분할하고 리스트에 설정합니다.
D = [int(i) for i in D]   # 문자열을 정수로 변환합니다.
D = [calc(i) for i in D]  # D의 모든 항목에 대해 calc 메소드로 부동 소수점 값을 반환합니다.
D = [round(i) for i in D] # 모든 부동 소수점 값을 반올림합니다.
D = [str(i) for i in D]   # join 연산을 적용할 수 있도록 모든 정수를 문자열로 변환합니다.

print(",".join(D))

또는

from math import sqrt

C,H = 50,30

def calc(D):
    return sqrt((2*C*D)/H)

D = input().split(',')                     # 쉼표 위치에서 분할하고 리스트에 설정합니다.
D = [str(round(calc(int(i)))) for i in D]  # 컴프리헨션 메소드를 사용합니다. 이전 코드의 순서대로 작동합니다.
print(",".join(D))

또는

from math import sqrt
C,H = 50,30

def calc(D):
    return sqrt((2*C*D)/H)

print(",".join([str(int(calc(int(i)))) for i in input().split(',')]))

또는

from math import * # 모든 수학 함수 가져오기
C,H = 50,30

def calc(D):
    D = int(D)
    return str(int(sqrt((2*C*D)/H)))

D = input().split(',')
D = list(map(calc,D))   # D에 calc 함수를 적용하고 리스트로 저장합니다.
print(",".join(D))

'''솔루션 작성자: parian5
'''
from math import sqrt
C, H = 50, 30
mylist = input().split(',')
print(*(round(sqrt(2*C*int(D)/H)) for D in mylist), sep=",")


'''솔루션 작성자: saxenaharsh24
'''

my_list = [int(x) for x in input('').split(',')]
C, H, x = 50, 30, []

for D in my_list:
    Q = ((2*C*D)/H)**(1/2)
    x.append(round(Q))

print(','.join(map(str, x)))

문제 7

문제:

_2개의 숫자 X, Y를 입력받아 2차원 배열을 생성하는 프로그램을 작성하십시오. 배열의 i번째 행과 j번째 열의 요소 값은 i * j여야 합니다.*

참고: i=0,1.., X-1; j=0,1,¡­Y-1. 다음과 같은 입력이 프로그램에 제공된다고 가정합니다: 3,5

그러면 프로그램의 출력은 다음과 같아야 합니다:

[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]

힌트:

질문에 입력 데이터가 제공되는 경우 쉼표로 구분된 형태로 콘솔 입력으로 간주해야 합니다.


주요 저자 솔루션: 파이썬 2

input_str = raw_input()
dimensions = [int(x) for x in input_str.split(',')]
row_num = dimensions[0]
col_num = dimensions[1]
multilist = [[0 for col in range(col_num)] for row in range(row_num)]

for row in range(row_num):
    for col in range(col_num):
        multilist[row][col] = row * col

print multilist

내 솔루션: 파이썬 3

x,y = map(int,input().split(','))
lst = []

for i in range(x):
    tmp = []
    for j in range(y):
        tmp.append(i*j)
    lst.append(tmp)

print(lst)

또는

x,y = map(int,input().split(','))
lst = [[i*j for j in range(y)] for i in range(x)]
print(lst)

문제 8

문제:

쉼표로 구분된 단어 시퀀스를 입력받아 알파벳순으로 정렬한 후 쉼표로 구분된 시퀀스로 단어를 인쇄하는 프로그램을 작성하십시오.

다음과 같은 입력이 프로그램에 제공된다고 가정합니다:

without,hello,bag,world

그러면 출력은 다음과 같아야 합니다:

bag,hello,without,world

힌트:

질문에 입력 데이터가 제공되는 경우 콘솔 입력으로 간주해야 합니다.


주요 저자 솔루션: 파이썬 2

items = [x for x in raw_input().split(',')]
items.sort()
print ','.join(items)

내 솔루션: 파이썬 3

lst = input().split(',')
lst.sort()
print(",".join(lst))

'''솔루션 작성자: Poonam-glitch
'''
def my_func(e):
    return e[0]

my_list = input('쉼표로 구분된 문자열을 입력하세요: ').split(",")
my_list.sort(key=my_func)
print(",".join(my_list))

문제 9

문제:

여러 줄의 시퀀스를 입력받아 문장의 모든 문자를 대문자로 만든 후 줄을 인쇄하는 프로그램을 작성하십시오.

다음과 같은 입력이 프로그램에 제공된다고 가정합니다:

Hello world
Practice makes perfect

그러면 출력은 다음과 같아야 합니다:

HELLO WORLD
PRACTICE MAKES PERFECT

힌트:

질문에 입력 데이터가 제공되는 경우 콘솔 입력으로 간주해야 합니다.


주요 저자 솔루션: 파이썬 2

lines = []
while True:
    s = raw_input()
    if s:
        lines.append(s.upper())
    else:
        break

for sentence in lines:
    print sentence

내 솔루션: 파이썬 3

lst = []

while True:
    x = input()
    if len(x)==0:
        break
    lst.append(x.upper())

for line in lst:
    print(line)

또는

def user_input():
    while True:
        s = input()
        if not s:
            return
        yield s

for line in map(str.upper, user_input()):
    print(line)
'''솔루션 작성자: hajimalung baba
'''
def inputs():
    while True:
        string = input()
        if not string:
            return
        yield string

print(*(line.upper() for line in inputs()),sep='\n')

이전 날로 가기

다음 날로 가기

토론