문제:
프로그래머스 파이썬 코딩테스트 중...
주어진 숫자 리스트 중에서 최빈값을 구해 출력하는 문제.
시도:
def solution(array):
array.sort() #숫자리스트정렬
int_list = array #숫자리스트를 변수에 담는다.
str_list = list(map(str,int_list)) #map으로 모든 숫자를 문자열로 바꾼다.
result_str = ''.join(str_list) #쪼개져있는 문자열들을 합쳐서 하나의 문자열로
empty_list = []
for i in str_list:
num_count = result_str.count(i) #문자열리스트를 돌며 i를 하나씩 잡아서 통돼지바베큐 문자열에서 몇번씩 들어있나 센다.
#i들 중 가장 num_count가 많은 i를 프린트한다.
empty_list.append(num_count)
if num_count > empty_list[-1]:
empty_list = [num_count]
answer = i
return answer
문자열에서 count 하면 해당 알파벳이 나오는 점에서 착안... 이리저리 해보려 했으나 실패 ㅜ,ㅜ
괜찮아 난 초보니깐!
해결:
어떤 고수님이 쓰신 코드
def solution(array):
while len(array) != 0:
for i, a in enumerate(set(array)):
array.remove(a)
if i == 0: return a
return -1
우아하당...
멋져... 근데 이것도 잘 이해가 안가는 나의 실력.
하나 하나 쪼개서 구글이나 GPT에 돌려본다.
알게된점:
고수님 코드에다 주석을 달아서 한 줄 한 줄 분석해봐야지.
def solution(array): #array라는 리스트를 받는 함수를 선언
while len(array) != 0: #이 함수는 배열을 순회하면서 순회한 값을 점차 지워가는데, 이 줄에서 배열의 길이가 0이 되면 순회를 멈추는 세팅을 함.
for i, a in enumerate(set(array)): #array리스트를 셋
array.remove(a)
if i == 0: return a
return -1
그 외 새로 배운 작은 내용:
_튜터님이 알려주신 STACK 체험 코드
class Stack:
def __init__(self):
self.items = []
def is_empty(self): #스택이 비었을 때 상태.
return self.items == []
def push(self, item): #제일 위에 새로운 걸 넣음
self.items.append(item)
def pop(self): #제일 위에 껄 빼냄
return self.items.pop
def peek(self): #꺼내진 않고 제일 위에껄 확인하는 명령
return self.items[-1]
def size(self): #지금까지 쌓인 데이터 양을 체크
return len(self.items)
이렇게 해놓고
my_stack = Stack()
my_stack.push(1)
my_stack.push(2)
my_stack.push(3)
print(my_stack.pop)
이런식으로 활용
_파이썬의 정렬기능 예시 쏘티드
# 쏘티드 오름차순: 쏘티드는 정렬할 대상이 바뀌지 않음
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)
print(sorted_list)
print(my_list)
# 쏘티드 내림차순
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list, reverse=True)
print(sorted_list)
print(my_list)
# 쏘트 오름차순: 쏘트는 정령할 대상 자체가 바뀌어버림
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)
print(my_list)
# 쏘트 내림차순
my_list.sort(reverse=True)
print(my_list)
print(my_list)
_터미널 글자에 색상 넣는 법
f "\033[숫자m내용내용내용내용\033[0m"
word = f"여기는 \033[36m파란색\033[0m 여기는 원래색"
print(word)
이렇게 하면
이렇게 나온다 ㅎㅎㅎ
'About coding > Today I learned' 카테고리의 다른 글
2023년 4월 3일 TIL [#Django 입문_1] (0) | 2023.04.03 |
---|---|
2023년 03월 31일 TIL (0) | 2023.03.31 |
2023년 03월 29일 (0) | 2023.03.29 |
2023년 03월 28일 TIL (0) | 2023.03.28 |
2023년 03월 27일 TIL (0) | 2023.03.27 |