새소식

인기 검색어

개인공부/Python

python 심사문제 UNIT(22 ~ 24)

  • -

22.10 심사 문제 : 2의 거듭제곱 리스트 생성하기

 

문제 : 표준 입력으로 정수 두 개가 입력됩니다(첫 번째 입력 값의 범위는 1~20, 두 번째 입력 값의 범위는 10~30이며 첫 번째 입력 값은 두 번째 입력 값보다 항상 작습니다). 첫 번째 정수부터 두 번째 정수까지를 지수로 하는 2의 거듭제곱 리스트를 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 리스트의 두 번째 요소와 뒤에서 두 번째 요소는 삭제한 뒤 출력하세요. 출력 결과는 리스트 형태여야 합니다.

 

정답 : 

a, b = map(int, input().split())
temp = [i for i in range(a, b + 1)]
list = [2 ** i for i in temp if not (i == temp[1] or i == temp[-2])]
print(list)

 

 

 

23.7 심사문제 : 지뢰 찾기

 

문제 : 표준 입력으로 2차원 리스트의 가로(col)와 세로(row)가 입력되고 그다음 줄부터 리스트의 요소로 들어갈 문자가 입력됩니다. 이때 2차원 리스트 안에서 *는 지뢰이고. 은.은 지뢰가 아닙니다. 지뢰가 아닌 요소에는 인접한 지뢰의 개수를 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).

 

정답 : 

col_, row_ = map(int, input().split())
martix = []
for i in range(row_):
    martix.append(list(input()))

for i in range(len(martix)):
    print(martix[i])
mine = [[0 for i in range(row_)] for i in range(col_)]  # 번호 표시할 리스트

for i in range(len(martix)):
    for j in range(len(martix[i])):
        if not (martix[i][j] == '*'):
            for k in range(i - 1, i + 2):
                for l in range(j - 1, j + 2):
                    if k >= 0 and k < row_ and l >= 0 and l < col_:
                        if martix[k][l] == '*':
                            mine[i][j] += 1
        else:
            mine[i][j] = '*'

for i in range(len(mine)):
    for j in range(len(mine[i])):
        print(mine[i][j], end='')
    print()

 

 

 

 

24.5 심사 문제 : 특정 단어 개수 세기

 

문제 : 표준 입력으로 문자열이 입력됩니다. 입력된 문자열에서 'the'의 개수를 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 모든 문자가 소문자인 'the'만 찾으면 되며 'them', 'there', 'their' 등은 포함하지 않아야 합니다.

 

정답 : 

text = input().replace('.', ' ').replace(',', ' ').split()
count = 0
for i in range(len(text)):
    if len(text[i]) == 3:
        count += text[i].count('the')
print(count)

 

24.6

문제 : 표준 입력으로 물품 가격 여러 개가 문자열 한 줄로 입력되고, 각 가격은 ;(세미콜론)으로 구분되어 있습니다. 입력된 가격을 높은 가격순으로 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 가격은 길이를 9로 만든 뒤 오른쪽으로 정렬하고 천단위로 ,(콤마)를 넣으세요.

 

정답 :

price = sorted(list(map(int, input().split(';'))), reverse=True)
for i in range(len(price)):
    print('%9s' % format(price[i], ','))

 

'개인공부 > Python' 카테고리의 다른 글

딕셔너리 응용하기  (0) 2022.07.28
리스트와 튜플 응용하기  (0) 2022.07.28
python 심사문제 UNIT(13 ~ 21)  (0) 2022.07.26
while 반복문  (0) 2022.07.26
for 반복문  (0) 2022.07.26
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.