결과:
<프로그래머스 문제 풀기>
* 완전탐색 - 소수 찾기
구글신의 도움을 받아 ,,, 완벽한 다른 위대하신 분의 코드 ,, 를 참고했다(가져왔다). ^^
그냥 외우기로 했다.
이 부분은 어쩔 수 없는 거 같아요.
시간 단축에 직빵인 StringBuilder, ,,
만들 수 있는 모든 숫자를 만들어 Set에 넣은 후,
Set을 검사해 소수일 때 answer를 증가시키는 방법이다.
흔한,,dfs ,, if문을 통해 즉, sb(StringBuilder)의 길이가 depth랑 같아지면 set에 넣어주고 리턴해준다.
true이면 continue를 통해 패스하고, 아니면 true로 바꾼후 sb에 append 후 dfs ,, 후 delete를 통해 뒤에 한글자씩 제거하고 false로 ,,,
사실,,dfs,, 외우기로 했다,,, ^ ^
소수를 판별하는 함수,, 이것도 외우기로 다짐 ^^ 오늘의 나는 외웠다 이 코드 ,,
* 완전탐색 - 카펫
입출력 예를 보고 처음에 든 생각은 x랑 y랑 최대한 가까운 숫자로 만들어야겠다는 생각이 들었다.
따라서 brown과 yellow를 더한 값을 x와 y의 곱으로 표현하되, 이 둘은 x >=y이며 차이는 최대한 적게! 만들고자 했다.
하지만 테스트케이스에서 세 개를 계속 틀려서 헤맸었는데, 노란색, 갈색 개수가 맞는지 확인해보라는 친구의 힌트를 통해 조건에 넣어줬다.
brown은 yellow의 테두리에 생기기 때문에, 전체를 x, y라 했을 때 yellow는 x-2, y-2가 될 것이다.
따라서 이 값이 yellow가 되야한다는 조건도 넣어줬다.
brown은 yellow가 맞게되면 일치할 것이기 때문에 굳이 넣어주지 않았다.
헌데, 구글에서 다른 풀이들을 살펴보니 보통은 이렇게 풀지는,,,않더라구요 ,, ㅎ ,,