본문 바로가기

Python

[알고리즘_Programmers] 2주차 문제 및 풀이 (총 5 문제)

<문제 1번>

 

<1. 나의 풀이>

 

이 문제는 푸는데 좀 오래걸렸다 ㅠㅠ (연속적으로 나타나는 숫자를 어떻게 제거해야 할지 감을 못잡아서...)

 

그래도 머리를 쥐어 뜯어가며 잘 생각해보니 위와 같은 풀이로 접근할 수 있었다.

 

<2. 내 풀이보다 더 효율적인 풀이>

 

result 리스트의 맨 마지막 값이 리트스 i 와 동일한지를 확인하는 조건문을 걸어주면 되는거였네....

 

 

<문제 2번>

 

<1. 나의 풀이>

 

이 문제는 생각보다 간단하다.

 

단어의 길이가 홀수인 경우와 짝수인 경우를 각각 처리해주기만 하면 된다.

 

홀수인 경우에는 정확하게 위치한 가운데 문자가 존재하기 때문에 구하기 쉽다.

 

물론 짝수인 경우도 어렵지는 않은데, 위와 같이 처리를 해주면 된다.

 

<2. 내 풀이보다 더 효율적인 풀이>

 

유레카!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

이렇게 한 줄의 코드로 구현을 하면서, 짝수인 경우와 홀수인 경우를 모두 커버할 수 있었네 ㅎㅎㅎ

(역시 난 아직 갈길이 멀구나...하하핳)

 

 

<문제 3번>

 

<1. 나의 풀이>

 

이 문제에서 주의할 점은 x 가 "0"인 경우를 고려해주어야 한다는 것이다.

 

처음에 시도를 할 때, x 가 "0"인 경우를 고려하지 않고 풀이를 제출했더니, 코드 실행 단계에서는 문제가 없었으나 코드 제출 단계에서 에러가 발생했다...ㅠㅠ 끝날 때까지 끝난게 아니다라는 말이 생각났다...

 

<2. 내 풀이보다 더 효율적인 풀이>

 

위와 같이 list comprehension을 사용하여 for 문을 돌리면 간단하게 한 줄로 구현이 가능하다.

 

아무리 생각해봐도 리스트 컴프리헨션이 최고인 것 같다!!

 

 

<문제 4번>

 

<1. 나의 풀이> = <2. 내 풀이보다 더 효율적인 풀이>

 

이 문제는 예전에 풀어본 적도 있고 해서 간단하게 풀었다. 위 방법이 가장 효율적인 방법인 것 같다 ^^

 

 

<문제 5번>

 

<1. 나의 풀이> = <2. 내 풀이보다 더 효율적인 풀이>

 

 

이 문제도 정말 정말 간단하다.

 

평균"전체 자료의 합 / 전체 자료의 개수"로 간단하게 구할 수 있으며, 마찬가지로 위의 풀이가 가장 효율적인 방법인 것 같다.