본문 바로가기

스파르타코딩개발일지

TIL AWS2 일차 & 프로그래머스 1단계 알고리즘 문제

AWS 2주차강의는 다음 프로젝트 진행할때 직접올리면서 병행할예정이다

강의 자체는 다들었지만 직접올리면서 해보는게 낫다고 판단하였다

 

이외에 시간에는 알고리즘 세문제가 남아서 오늘 다풀어보자는 생각이였다.

 

첫 번쨰 문제는

 입력받은 두 수사이를 탐색하고 두수 사이의 숫자들이 약수가 짝수라면 +하고 홀수라면 -를한다.

 

나는 n~m까지 for문을 돌리고 for문을 돌리는 i 에대해서 한번더 돌리고 짝수인애들을은 a리스트에 홀수인 애들은 b리스트에 담아서 sum(a)-sum(b)로 시도 하려했다

그러나 a의 type은  list형식이였다. list형식도' ' .join() 함수를 이용하면 해결가능했지만 완성하고 나니까 코드가 굉장히 지저분하고 가독성이 떨어져서 다른방법을 생각했다

굳이 짝수리스트 홀수리스트 담을 필요는없다고 생각했고 짝수는 더해주고 홀수는뺴주는 조건문을 작성해주었다.

list=0
for a in range(left, right+1):
    result=0
    for b in range(1 ,a+1):
        if a % b ==0:
            result +=1
    if result % 2 == 0:
        list += a
    else:
        list -= a
 

지금 작성한 답이야 간결하지만 저 10줄내외의 코드를쓰기까지 3시간이걸렸다.

심지어 result=0이 왜 for문안에 들어가야하는지 모르겠다..

 

두번째 문제는 체육복인데 greedy(탐욕법)미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법 을사용한다.

문제도 이해했고 코드만짜면되는데 

 

모르겠다..

세번쨰문제는 비밀지도 벽이있는지도는 1(2진수) 벽이없다면 0 두개의 지도를 겹처보았을떄

두지도중 한칸이라도 벽이있다면 1 둘다비어있다면 0이다

주어진 지도(리스트)에는 10진수로 적혀있으며

특정 지도 두장을 겹처보았을떄(array list를 두장입력받고) 전부 2진수로변환한뒤 비교하면 되는문제이다.

지금 작성중이며 아직도 해결하지못하고있다.

 

이외 나머지문제는 해결 

https://github.com/Beam-ki/Rabbit_algorithm.git

 

GitHub - Beam-ki/Rabbit_algorithm

Contribute to Beam-ki/Rabbit_algorithm development by creating an account on GitHub.

github.com

 

나머지 코드와 접근방법 등 readme.md에  적어놓았다.

'스파르타코딩개발일지' 카테고리의 다른 글

TIL 팀프로젝트 4일  (0) 2022.11.07
TIL A2 프로젝트  (0) 2022.11.04
TIL AWS 1일차  (0) 2022.10.31
TIL django 심화 5일차  (0) 2022.10.31
TIL django 심화과정 4일  (0) 2022.10.27