본문 바로가기

내일 배움 캠프/TIL

TIL) 6주차 3일

 

알.고.리.즘 어렵다..

 

풀면 풀수록 어렵네 

 


프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12918
문자열 다루기

이문제는 어제 풀었던 "문자열 정렬하기"와 거의 유사한 방법으로 풀면 된다! 때문에 어제자 TIL을 확인하자.

https://hanilcome.tistory.com/29

 

TIL) 6주차 1일

길고긴 프로젝트가 끝났다.. 운좋게? 발표도 걸려서 어버버 거리면서 끝내긴 했다.. 뭔가 얻어가는게 많은 한 주 였다 깃 문제도 오늘 매니저님을 1시간 동안 붙잡고 결국 해결했다 ㅎ 오늘은 조

hanilcome.tistory.com

 


프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12915
문자열 내 마음대로 정렬하기

 

너무나도 어려웠던 문제 .. 일단 내가 풀었던 코드는 다음과 같다.

def solution(strings, n):
    answer = []
    lens = len(strings)
    copy_ = strings
    num = 0
    str_index = []
    max_ = []

    while num < lens:
        if len(copy_) == 1:
            max_ = copy_[0] 
        else:
            for i in copy_:
                    str_index.extend(i[n])
                    
            for a in range(0, len(str_index)-1): 
                if str_index[0] == str_index[a+1]:
                    if copy_[0] > copy_[a+1]:
                        max_ = copy_[0]
                    else:
                        max_ = copy_[a+1]
                elif str_index[0] > str_index[a+1]:
                    max_ = copy_[0]
                elif str_index[0] < str_index[a+1]:
                    str_index[0] = str_index[a+1]
                    max_ = copy_[a+1]
        
        answer.append(max_)
        copy_.remove(max_)
        num += 1
        str_index = []

    answer.reverse()
    return answer

copy_.remove(max_)를 쓴이유는 이게 없으면 while문을 돌렸을때 처음나온 가장 큰값이 계속해서 반복적으로 나온다. 따라서 값이 나온 max_값을 strings를 복사한 copy_에서 지워주면, 그 값을 제외한 바로 다음 큰 수를 뽑을 수 있겠다 싶어서 넣은것이다. 

하지만... 테스트는 통과 했지만 통과는 못했다. 여러 반례를 찾아가며 다음에 다시 고쳐봐야겠다.


 

'내일 배움 캠프 > TIL' 카테고리의 다른 글

TIL) 6주차 5일  (0) 2023.04.24
TIL) 6주차 4일  (0) 2023.04.24
TIL) 6주차 2일  (0) 2023.04.20
TIL) 6주차 1일  (0) 2023.04.18
TIL) 5주차 5일  (0) 2023.04.15