반응형
1. 문자열 압축하기
input ) aaabbcccccca
output ) a3b2c6a1
반복문을 이용하여 문자를 하나씩 탐색하며 기준 문자를 설정한다
기준 문자와 다른 경우에는 기준 문자를 업데이트 시킨 후, cnt 값을 1로 초기화 한다
기준 문자와 같은 경우에는 cnt 값을 +1 한다
코드는 다음과 같다
str = input()
length = len(str)
word = ''
cnt = 1
for i in range(0, length):
word = str[i] # for word in str 로 표현 가능
if(i+1 < length):
if(word == str[i+1]):
cnt += 1
else:
print("%c%d" % (word, cnt), end="") # 문자열 포맷팅
cnt = 1
else: # 마지막 문자
print("%c%d" % (word, cnt), end="")
""" 답안
s = input()
_c = ""
cnt = 0
result = ""
for c in s:
if c != _c:
_c = c
if cnt: result += str(cnt)
result += c
cnt = 1
else:
cnt += 1
if cnt: result += str(cnt)
print(result)
"""
- for문으로 문자열을 반복시키면 한 문자씩 탐색이 가능하다 ( for c in "string" )
- print("%c" %(word)) 으로 word의 문자를 %c 자리에 대입하여 출력할 수 있다 - 문자열 포맷팅
- print( ... , end="") 으로 출력 후 줄바꿈을 막을 수 있다
2. Duplicate Numbers
0~9까지 모든 숫자가 각각 한 번씩만 사용되었는지 확인
input ) 0123654789 1123456789
output ) True False
1. 문자열의 길이가 10이 아닌 경우를 배제한다
2. 0~9의 숫자를 확인한다
or
1. 리스트에 한 문자씩 첨가하며 같은 수가 있는 경우를 배제한다
2. 리스트의 길이가 10인지 확인한다
코드는 다음과 같다
strr = "0123456789 315 1"
list_str = strr.split(" ")
for s in list_str:
if len(s) != 10: print("false", end="")
else:
for i in range(0,11):
if(i == 10):
print("true", end="")
break
if(str(i) not in s): # 문자열 연산자
print("false", end="")
break
print(" ", end="")
""" 답안
def Checking(s):
result = []
for num in s:
if num not in result:
result.append(num)
else:
return False
return len(result) == 10
print(Checking("0123948576"))
print(Checking("1123456789"))
"""
3. 모스 부호 해독
문자열 형식의 모스 부호를 영어 문장으로 바꿔 출력
규칙 표가 있는 경우, 딕셔너리를 이용한다
코드는 다음과 같다
dic = {".-" : "A", "-..." : "B"}
sentence = "-... .-"
result_str = ""
#result_list = []
for s in sentence.split(" "):
result_str += dic[s]
#result_list.append(dic[s])
print("".join(result_str))
#print("".join(result_list))
- join() 함수를 이용하여 문자열, 리스트 사이에 문자를 삽입하여 문자열로 반환할 수 있다
반응형
'etc.' 카테고리의 다른 글
[Python] 소인수 분해 (** 연산자, // 연산자) (0) | 2020.12.09 |
---|---|
CodeBlocks 간단한 팁 6가지 (0) | 2020.12.08 |
[백준 12015번][C] 이진 탐색(Binary Search)을 이용한 LIS(최장 증가 수열) (0) | 2020.12.06 |
[Python] 클래스의 "self" 개념 (0) | 2020.12.05 |
[Python] while문, for문으로 피라미드 출력하기 (0) | 2020.12.03 |