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
- CPU bound
- 동시성문제
- 십진수 이진수 전환
- stack
- IO bound
- green thread
- deque
- 가장 가까운 단어
- port
- springMVC
- 크기가 작은 부분 문자열
- 문자열
- reflection
- CPU
- Spring
- java
- 코딩테스트
- 프로그래머스
- 문자열 내마음대로 정렬하기
- process
- dns
- Split
- annotation
- 2차원 배열 출력
- Queue
- http
- DICTIONARY
- frontPattern
- URL
- TCP/IP
Archives
- Today
- Total
아무나개발하자
문자열 내 마음대로 정렬하기 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12915
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
첫번째 내가 그냥 생각하고 한 풀이
'''
문제 풀이 방법
1. str_dic를 하나 생성한다.
2. strings를 for문 돌면서 n번째 인덱스에 해당하는 값을 key, 문자열 value를 str_dic에 넣어준다.
3. 만약 n 인덱스가 겹치면, 해당 value를 비교해서 "먼저나오는 값,뒤에나오는값" 이런형식으로
","를 기준으로 넣어준다.
4. str_dic를 key값을 기준으로 sort해줌
5. answer.append를 해주는데 만약에 value에 ","를 포함하면 짤라서 append를 해준다.
'''
def solution(strings, n):
answer = []
str_dic = {}
for string in strings:
sort_key = string[n]
if sort_key not in str_dic:
str_dic[sort_key] = string
else:
sort_list = []
if "," in str_dic[sort_key]:
sort_list = list(str_dic[sort_key].split(","))
sort_list.append(string)
else:
sort_list.append(str_dic[sort_key])
sort_list.append(string)
sort_list.sort()
str_dic[sort_key] = ",".join(sort_list)
sort_str_dic = dict(sorted(str_dic.items()))
for val in sort_str_dic.values():
if "," in val:
val_lists = list(val.split(","))
for val_ in val_lists:
answer.append(val_)
else:
answer.append(val)
return answer
sort 함수를 이용한 다른사람의 풀이 👍 👍 👍
'''
key 인자에 함수를 넘겨주면 우선순위가 정해짐.
sort_list = sorted(문자열, key = lambda x : x[0])
비교할 아이템이 요소가 복수 개일 경우, 튜플로 우선순위를 정해줄 수 있다.
sorted(문자열, key = lambda x : (x[n], x))
'''
def solution(strings, n):
answer = []
answer = sorted(strings, key = lambda x : (x[n], x))
return answer
'코딩테스트' 카테고리의 다른 글
영어 끝말잇기 (0) | 2023.01.28 |
---|---|
[1차] 캐시 (0) | 2023.01.27 |
가장 가까운 같은 글자 (0) | 2023.01.13 |
[1차] 비밀지도 (0) | 2023.01.11 |
이상한 문자 만들기 (0) | 2023.01.10 |