Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- json
- 비동기
- promise
- async
- Import
- db
- slow and steady
- execCommand
- database
- addEventListener
- 참고블로그
- eport
- Project
- await
- 게임
- prj
- JS #프로젝트
- https://m.blog.naver.com/tt2t2am1118/221010125300
- 동기
- mysql
- object
- sql
- js
- webpack
- Porject
- callback
- ajax
- 혼프
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- setTimeout()
Archives
- Today
- Total
C-log
💡1181번 본문
728x90
내가 원하는 방식은 처음 부터 sort를 사용하지 않고 (sort를 len기준으로 변형하는 방법을 모르긴 했음) 이에 문제를 풀어보려고 했으나 원할하지 않아 구글링을 통해서 풀이법을 확인해 보았다.
n = int(input())
lst = []
for i in range(n):
lst.append(input())
set_lst = set(lst) ## set으로 변환해서 중복값을 제거
print(type(set_lst))
lst = list(set_lst) ## 다시 list로 변환
lst.sort(key = len)
for i in lst:
print(i)
<class 'set'>
i
im
it
no
but
more
wait
wont
yours
cannot
hesitate
i
im
it
no
but
more
wait
wont
yours
cannot
hesitate
sort를 단순히 sort하는 것이 아니라 기준을 정해서 sort하는 방법이 있다. 위의 코드처럼 작성하면 된다.
여기서 set으로 변환을 하면 type이 set이 되기 때문에 다시 list로 변환을 해주어야 한다. 개인적으로 문자열이 약해서 문자열 문제를 위주로 풀어보고 있었다.
내가 의도한 sort를 사용하지 않고 코드를 짰을 때의 모습은 아래와같다.
N = ['but', 'i', 'wont', 'hesitate', 'no', 'more',
'no', 'more', 'it', 'cannot', 'wait', 'im', 'yours']
# 선택 정렬 알고리즘 직접 구현
for i in range(len(N)): # N의 배열 길이를 i로 반환
min_index = i
for j in range(i + 1, len(N)): # 1에서부터 N의 배열 길이 만큼
#첫번째 for문이 i(min_index)일때 i를 기준으로 j로 반환된 전체 길이만큼 루프가 돈다.
print(j, end=' ')
# min_index를 정하는 if문이다.
# 1 과 0 index를 비교
if len(N[j]) < len(N[min_index]) or (len(N[j]) == len(N[min_index]) and N[j] < N[min_index]):
# N[j] < N[min_index] 알파벳의 순서크기 비교
min_index = j
N[i], N[min_index] = N[min_index], N[i] # 서로 switch하는 구문
print(N)
# 중복 제거
unique_N = []
for item in N:
if item not in unique_N: # unique_N list에 요소가 없을 때
unique_N.append(item)
# 결과 출력
for item in unique_N:
print(item)
['i', 'but', 'wont', 'hesitate', 'no', 'more', 'no', 'more', 'it', 'cannot', 'wait', 'im', 'yours']
['i', 'im', 'wont', 'hesitate', 'no', 'more', 'no', 'more', 'it', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'hesitate', 'no', 'more', 'no', 'more', 'wont', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'no', 'hesitate', 'more', 'no', 'more', 'wont', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'no', 'no', 'more', 'hesitate', 'more', 'wont', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'hesitate', 'more', 'wont', 'cannot', 'wait', 'more', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'hesitate', 'wont', 'cannot', 'wait', 'more', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wont', 'cannot', 'wait', 'hesitate', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'cannot', 'wont', 'hesitate', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'cannot', 'hesitate', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'yours', 'hesitate', 'cannot']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'yours', 'cannot', 'hesitate']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'yours', 'cannot', 'hesitate']
['i', 'im', 'wont', 'hesitate', 'no', 'more', 'no', 'more', 'it', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'hesitate', 'no', 'more', 'no', 'more', 'wont', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'no', 'hesitate', 'more', 'no', 'more', 'wont', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'no', 'no', 'more', 'hesitate', 'more', 'wont', 'cannot', 'wait', 'but', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'hesitate', 'more', 'wont', 'cannot', 'wait', 'more', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'hesitate', 'wont', 'cannot', 'wait', 'more', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wont', 'cannot', 'wait', 'hesitate', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'cannot', 'wont', 'hesitate', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'cannot', 'hesitate', 'yours']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'yours', 'hesitate', 'cannot']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'yours', 'cannot', 'hesitate']
['i', 'im', 'it', 'no', 'no', 'but', 'more', 'more', 'wait', 'wont', 'yours', 'cannot', 'hesitate']
완벽히 나의 머리에서 나온 방법이 아니다. gpt에게 어느 정도 도움을 받았다. 우선 선택정렬 알고리즘을 사용했다. 이유는 최소값과 최대값을 비교하는 방식이다. 여기서 min_index 즉,작은 index값을 기준으로 비교하고 있다. 명확히 머리에서 그림이 그려지지는 않지만 for문을 돌면서 switch하는 구문에서 값들을 변경해준다.
문자열도 약하지만 개인적으로 for문도 약하지 않나라는 생각도 어렴풋이 생각해본다.
728x90
'🧠Algorithm > Baekjoon💡' 카테고리의 다른 글
🧪선택정렬 알고리즘 연습 (0) | 2023.12.30 |
---|---|
💡5597번 (0) | 2023.12.29 |
💡✨중간점검 : str, list로 만들기와 count(), index() 응용 (1) | 2023.12.28 |
💡2941번 (0) | 2023.12.27 |
💡✨중간점검 : set()과 count() (0) | 2023.12.26 |
Comments