2021.1.19 화
li=[3,29,38,12,57,74,40,85,61]
sequence=[]
num=[]
for seq in range(9):
input_num=li[seq]
if seq==0:
sequence.append(input_num) #숫자를 저장하는 리스트
num.append(seq+1) # 숫자의 입력 순서를 저장하는 리스트
else:
i=0
for h in range(len(sequence)):
if sequence[h]<=input_num: #들어온 입력값이 원래있던 수보다 크거나 같은 경우
i+=1 #왼쪽부터 크기가 큰 경우 +1씩 하다가 작은경우 out (크기순서대로 입력하기 때문에 그 외의 경우는 없다.)
sequence.insert(i, input_num)
num.insert(i,seq+1)
print(sequence[-1], num[-1], sep='\n') #가장 큰 입력값의 숫자와 입력 순서를 반환
count_dict={}
for i in range(10):
left_num=a[i]%42
#입력값의 중복 개수만큼 닥셔너리에 저장하는 코드 ***활용도 많음***
if left_num not in count_dict.keys():
count_dict[left_num]=1
else:
count_dict[left_num]+=1
format(i/member*100,'2.3f')
# ex) 40.000과 같이 2-정수개수, .3 - 소수점 아래 개수 제한하는 메쏘드
ex) 33+3+3 = 39는 셀프넘버가 아님. 셀프넘버가 아닌 수의 리스트를 만들고 그 리스트에 해당하지 않는 모든 수를 반환하는 코드
def self_number(limit):
all_number=[i+1 for i in range(limit)]
self_number_li=[]
for i in all_number:
one=0
#셀프넘버가 아닌 모든 수를 계산하는 부분
for a in range(len(str(i))):
one+=int(str(i)[a])
new_number=i+one
self_number_li.append(new_number) #변수 잘못 설정 : self_number_li는 셀프 넘버가 아닌 수의 리스트
output=[print(i+1) for i in range(limit) if i+1 not in self_number_li] # 위의 리스트에 있지 않는 limit까지의 모든 수 반환
def output(limit):
one_number=[]
for a in range(1,limit+1):
if len(str(a)) <3: #세자리 숫자 이하인 수는 비교대상이 없으니 등차수열이다.
one_number.append(a)
else:
one=str(a)
abstract=[]
for i in range(len(one)-1):
first=int(one[i])-int(one[i+1])
abstract.append(first)
if abstract.count(first)==len(str(a))-1: # 마지막 출력된 등차의 개수가 주어진 문자열-1과 같다면 등차수열
one_number.append(a)
return len(one_number)
ord() : 문자열 > 아스키 코드 / chr() : 아스키 코드 > 문자열
str.find('문자열') : str 인덱스 호출
from string import ascii_lowercase #알파벳 소문자 리스트 자동생성
alpha_list=list(ascii_lowercase)
str.lower() / str.upper() : 알파벳 소문자/대문자 반환
sorted_values=sorted(count.items(), key=lambda x:x[1], reverse=True) : value 큰 순서대로 딕셔너리 item sort하는 코드
dic[0][1] : 딕셔너리 첫번째 아이템의 value값 출력
a='z'.lower() #.lower() : 소문자로 만들기
count={}
#해당 문자열 알파벳 개수 딕셔너리 반환
for i in a:
if i not in count.keys():
count[i]=1
else:
count[i]+=1
values_li=list(count.values()) #dictionary value 값 list로 만들기
sorted_values=sorted(count.items(), key=lambda x:x[1], reverse=True) # value들로 큰값들부터 정렬 ***중요***
if values_li.count(sorted_values[0][1])==1: #value에서 제일 큰값 list에서 개수 찾기
print(sorted_values[0][0].upper()) #.upper() : 대문자로 만들기
else:
print('?')# 1이 아니면 유일한 큰값이 아니기 때문에 ? 출력
a.find / a.index : 둘다 해당 문자열의 인덱스를 반환하지만 find는 문자열이 없는경우 -1, index는 에러가 뜨게 된다
lstrip / rstrip / strip : 왼쪽부터 해당 문자열 삭제 / 오른쪽부터 해당 문자열 삭제 / 해당 문자열 모두 삭제
string=input()
li=['c=','c-','dz=','d-','lj','nj','s=','z=']
count=0
space=0
for a in li:
if a in string:
string=string.replace(a,' ') #string.replace 함수
count+=1
space+=1 #문자열을 빼내고 나면 연결되지 않았던 알파벳이 연결되면서 다른 문자열 생성
#그래서 space를 넣어줘서 일치하는 문자열을 만들지 않게 하고 space 개수만큼 빼줌
print(len(string)+count-space)
number=int(input())
count=0
for _ in range(number):
string=input()
dic={}
# 각 알파벳의 개수 딕셔너리 생성 #앞에서 했던 방법의 간소화 버전
for i in string:
dic[i]=string.count(i)
dic_li=list(dic.values())
if dic_li.count(1)==len(dic_li): #1) 만약 각 알파벳의 개수가 1밖에 없다면 그룹단어
count+=1
else:
id_li=[]
for key, values in dic.items():
num=0
if values>=2:
li=[]
id=0
for _ in range(values):
id=string.find(key,id) #개수가 2개 이상인 알파벳의 인덱스 반환 - li에 저장
li.append(id)
id+=1
for h in range(len(li)-1):
if li[h]-li[h+1]==-1:
id_li.append(1) #2)인덱스의 등차수열이 1인 경우는 연속된 알파벳이기 때문에 그룹단어
else:
id_li.append(0) #3)인덱스의 차이가 1이 아니면 그룹단어가 아님
if 0 not in id_li:
count+=1
print(count)