본문 바로가기

개발/알고리즘

[BOJ] 뒤집기_1439

내가 짠 코드.

다른 사람이 짠 코드

효율성에서도 내 코드가 더 길고, 속도도 느리고, 메모리도 더 많이 차지한다.

 

내가 푼 방식

 

1. 연속된 0과 1의 구간을 구하여 배열에 추가한다.

2. 둘 중 더 짧은 배열의 길이를 출력한다.

 

다른 사람 코드 리뷰

요즘 카카오, 쏘마 코테 등을 보면서 코딩 테스트에는 어느정도 수학적 사고를 요구한다고 느꼈다.

 

count + 1 // 2 도 엄청난 수학적 사고가 필요한 것은 아니지만, 그래도 왜 이렇게 되는지 꼼꼼히 잡고 넘어가자.

문자가 바뀌는 시점을 모두 count한 후, 그 값에 +1 후 // 2 연산을 수행하였다.

이게 어째서 가능한 걸까??

 

(음,, 진짜 왜 이렇게 되는거지?? 그냥 귀납적으로 받아들이면 되는건가,,,?)

 

 

 

 

리뷰

일단 저렇게 풀거면 굳이 배열에 인덱스를 저장할 필요도 없었다.

처음 접근할 때는 저게 쓰일 줄 알고 막 구하고 갖다 쓰려고 했다.

 

지금 내 문제점은 문제를 설계하며 풀지 않고, 그때그때 생각나는 방식을 막 써내리는 것 같다.

먼저 문제를 이해하고, 문제에서 요구하는 것을 캐치한 후 그것을 어떻게 풀지 생각해보자.

 

'개발 > 알고리즘' 카테고리의 다른 글