34~36번 문제풀이

강인호·2022년 7월 19일
0

알고리즘 문제풀이

목록 보기
11/39

34번문제

처음에는 무슨소린가 했는데 결국 내가 n마리를 고를수 있는데 최대 몇종류를 고를수 있냐 가 핵심이였고

최댓값이 그냥 폰켓몬의 종류의 값을 찾고 고를수있는 횟수보다 폰켓몬의 종류가 많으면 고를수 있는 최댓값으로 answer를 return 하게끔 설정했다.

35번 문제

일단 받은 숫자 배열 두개를 2진법으로 변경후 서로 합치는것부터 접근해 봤는데, 첫번째 문제점은

변환을 했을때 우리는 00010 이란 값이 필요하다고 치면 10만 리턴을 해주는 것이였다.

해당 문제는 배열의 길이와 도출된 값의 길이의 차이만큼 앞에다 '0'을 추가해주는 것으로 해결했다.

지도를 합치는 과정에서는 1번지도와 2번지도의 각 인자를 비교해서 서로 다를경우 (1과0일경우)

0을 1로 채워넣는식으로 진행했다.

그 다음 완성된 지도로 for문을 돌려서 해당 인덱스가 1일경우"#"을 0일경우" "으로 바꿔줬다.

최종코드는

36번 문제

처음에 가운데줄 버튼일때 거리를 어떻게 구하지 하다가 해당번호를 각각 뺀후 절댓값을 씌워서 절댓값이 작은쪽의 손으로 누르게끔 했는데 5번을 눌러야하는데 손이 2번 4번에 있을경우 분명 거리는 같은데 2번이 더 가깝다고 계산을 해버려서 해당방식을 버렸고 질문하기에서 참고를 하는데.

딕셔너리 형식으로 2번으로부터의 거리를 0~9번까지 배열에 담아서 매칭을 시키는 방법을 알게되었고 해당방법을 사용하였다.

번호가 147일경우 왼손으로 누르고 answer에 L값 추가 왼손위치를 해당번호로 지정....하는과정을 반복해서 코드를 짰다.

0개의 댓글