-
[백준] 단어정렬 (1181번 파이썬)Coding Test/Algorithm 2021. 7. 15. 06:02
https://www.acmicpc.net/problem/1181
이번 문제는 생각을 좀 하게 만든 문제였다.
하지만 여전히 가볍게 풀었다 음하하하입력 조건을 보면 문자열의 길이가 최대 50개라고 한다.
나는 어렵게 정렬하기보다는 다른 문제를 풀때 방문한 좌표를 저장하는 스킬을 응용해서 풀었다.
길이가 50인 배열을 만들고 입력받은 문자열의 길이에 해당하는 인덱스에 해당 문자열을 넣었다.
word = sys.stdin.readline().rstrip() l = len(word) if word not in arr[l]: arr[l].append(word)
여기섯 if를 써서 not in을 쓴 이유는 같은 문자열을 입력받았을때는 무시하라고 조건에 적혀있기 때문이였다.
이렇게 해서 입력을 받으면 같은 길이의 문자열들은 arr[i]을 했을때 길이값이 2이상이 나온다.
그 점을 이용해서 중복된 길이의 문자열들을 따로 정렬해주는 코드를 짰다.
for c in arr: l = len(c) if l > 1: c = sorted(c) for k in c: print(k) elif l == 1: print(c[0])
2개 이상은 정렬해서 출력
1개는 바로 출력해주면 완성!
님들은 arr.sort(key=len) 쓰세요...'Coding Test > Algorithm' 카테고리의 다른 글
[백준] 2166번 다각형의 면적(파이썬) (0) 2021.08.06 [백준] 나이순 정렬 (10814번 파이썬) (0) 2021.07.16 [백준] 체스판 다시 칠하기 (1018번 파이썬) (0) 2021.06.12 [백준] 이항계수1 (11050번 파이썬) (0) 2021.06.11 [백준] 팰린드롬수 (1259번 파이썬) (0) 2021.06.10