문제 : 괄호 문자열
괄호 문자열이란 괄호 기호인 '{','}','[',']','(',')' 같은 것을 말한다.
괄호 모양이 바르게 구성 된 문자열을 바른 문자열 , 그렇지 않은 문자열을 바르지 않은 문자열
바른 문자열의 예시 (()) , 바르지 않은 문자열의 예시 ()())
입력으로 주어진 괄호 문자열이 바른 문자열인지 바르지 않은 문자열인지 'YES'와 'NO'로 구분된 문자열 출력해보자.
str1 = '(())'
str2 = '()())'
if str2.count('(') == str2.count(')') :
print("YES")
else :
print("NO")
문제 : 연속되는 수
숫자가 공백으로 구분되어 주어지면 이 숫자가 연속수인지 아닌지 'YES'와 'NO'로 판별하는 프로그램을 작성하세요
입력1 2 3 4 5
출력
YES
입력
1 4 2 6 3
출력
NO
inputList = list(map(int, input().split()))
count = 0
sortList = sorted(inputList)
for i in range(len(sortList)-1) :
if 1 == abs(sortList[i]-sortList[i+1]) :
count+=1
continue
else :
count = 0
print('NO')
break
if count > 0 :
print('YES')
문제 : 하노이의 탑
문제 : 리스트의 함수 응용
다음의 딕셔너리가 주어졌을 때 한국의 면적과 가장 비슷한 국가와 그 차이를 출력하세요.
nationWidth = {
'korea' : 220877,
'Rusia' : 1709842,
'China' : 9596961,
'France' : 543965,
'England' : 242900
}
tupleNation = nationWidth.items()
country = ''
for i in nationWidth :
if i != 'korea' :
difference = abs(nationWidth['korea'] - nationWidth[i])
nationWidth[i] = difference
for i in tupleNation:
if i[1] == min(nationWidth.values()):
country = i[0]
print(country,min(nationWidth.values()))
문제 : 내장함수 응용하기
0부터 1000까지 1의 개수를 세는 프로그램을 만들려고 합니다.
예를 들어 0부터 20까지 1의 개수를 세어본다면 1,10,11,12,13,14,15,16,17,18,19에 각 1이 들어가므로 12개의 1이 있게 됩니다. 11은 1이 2번 들어간 셈이다.
그렇다면 0부터 1000까지 수에서 1은 몇번이나 들어갔을까요? 출력해주세요~
str1 = ''
for i in range(0,21) :
str1+= str(i)
print(str1.count('1'))
str1 = str(list(range(1001)))
print(str1.count('1'))
문제 : 콤마 찍기
숫자를 입력 받고 천단위로 콤마(,)를 찍어주세요.
예를 들어 123456789를 123,456,789를 출력해야합니다.
num = '123456789'
def insertComma(taget) :
if len(taget) <= 3 :
return taget
else :
return insertComma(taget[:len(taget)-3]) + ',' + taget[len(taget)-3:]
print(insertComma(num))
참고)
문제 : 빈칸채우기
총 문자열의 길이는 50으로 제한하고 사용자가 문자열을 입력하면 그 문자열을 가운데로 정렬을 해주고, 나머지 빈부분에는 '='을 채워주세요
입력hi
출력
=================hi=================
.format('value') 함수 이용
- ex )
'{:=^20}'.format('hi')
출력:
=========hi=========
- : 이후 '=' 은 빈 공간을 채울 문자
- '^'은 정렬방법 (<: 좌로정렬, >: 우로 정렬, ^: 가운데 정렬)
- '20'은 제한할 문자열의 길이
문제 : enumerate
새학기가 되어 이름을 가나다 순서대로 배정하고 번호를 매기려고 합니다.
코드에 입력된 이름을 아래와 같이 출력해주세요.
studnet = ['강은','김유','박현','최성','홍유','박지','권율','김채','한지','김진','김민','강채']
for i,value in enumerate(studnet) :
print("번호 : ",i+1,", 이름 :",value)