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 |
Tags
- 수기
- 품사태깅
- Word2Vec
- 대학원
- naver movie review
- pytorch
- 인공지능
- 우울증
- word embedding
- 전처리
- 석사
- NLP
- 자연어처리
- Classification Task
- CUDA
- sentiment analysis
Archives
- Today
- Total
슬기로운 연구생활
[프로그래머스] 문자열 내 마음대로 정렬하기 본문
* 문제
programmers.co.kr/learn/courses/30/lessons/12915
코딩테스트 연습 - 문자열 내 마음대로 정렬하기
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1
programmers.co.kr
* 문제 풀이
- 첫째, 문자열의 n번째 위치하는 글자를 수집한 후, 중복 제거하여 정렬한다.
- 둘째, n번째 글자를 기준으로 일치하는 값이 있으면 따로 수집한다.
- 셋째, 해당 리스트를 정렬한 후 answer 리스트에 extend해 정답을 생성한다.
* 생각
- 이중 for문을 사용하기 때문에 시간복잡도가 매우 거슬렸다.
시간복잡도 최적화되게 풀 수 있을까?
* 코드
def solution(strings, n):
seq_list = []
for i in range(0, len(strings)):
seq_list.append(strings[i][n])
seq_list = list(set(seq_list))
seq_list.sort()
answer = []
for i in range(0, len(seq_list)):
temp_list = []
for j in range(0, len(strings)):
if seq_list[i] == strings[j][n]:
temp_list.append(strings[j])
temp_list.sort()
answer.extend(temp_list)
return answer
'슬기로운 코테 생활' 카테고리의 다른 글
[프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2020.11.18 |
---|---|
[프로그래머스] 문자열 내 p와 y의 개수 (0) | 2020.11.17 |
[프로그래머스] 두 정수 사이의 합 (0) | 2020.11.09 |
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2020.11.03 |
[프로그래머스] 같은 숫자는 싫어 (0) | 2020.11.02 |
Comments