본문 바로가기

Algorithm236

[Swift][소수][LV_2] K진수에서 소수개수 구하기 요구능력 : 소수판별 코드설명 : 처음에 에라토스테네스의 체를 100만으로 설정하고 풀었는데, 두 개의 테스트케이스에서 coreDumped가 나왔다. 인덱스 문제인것같아서 n = 1000000으로 설정하고 k = 6으로 설정해봤는데, 에라토스테네스의 체에 들어간 수가 100만 보다 큰 수가 나와버려서 coreDumped된것이었다. 그래서 4천만으로 설정하고 해봤는데 당연히 시간초과 ^^ 에라토스테네스가 더 빠른건줄알고 100만으로 두고 그보다 큰수가 나오면 아래에 isPrime함수를 사용했는데, 이렇게 사용한 시간보다 isPrime만 사용한 시간이 더 짧았다. 사실 이 문제에서 소수를 판별해봤자 몇개나 판별하겠나.. 이 문제를 통해서 에라토스테네스의 체를 소수구한다고 아무때나 사용하는게 아니라는것을 알았.. 2022. 2. 25.
[Swift][누적합][LV_3] 파괴되지 않은 건물 요구능력 : 누적합 코드설명 : 카카오테크블로그에 정말 설명이 쉽게 잘되어있습니다. 사실상 똑같은 유형의 문제를 접해보지 않는이상 이 문제는 풀기 어려운것같습니다. 누적합을 공부하고 이 문제를 풀어보면서 너무 많이 돈다고 생각했는데, 알고보니 변화하는 부분을 한번에 다 체크해주고 누적합을 한번에 구하는것이었습니다. 후기 : 개념을 알고있으면 쉬운문제인데 개념을 모른다면 효율성테스트를 절대 통과할 수 없다. func solution(_ board:[[Int]], _ skill:[[Int]]) -> Int { let n = board.count let m = board[0].count var count = 0 var preArr = Array(repeating: Array(repeating: 0, count.. 2022. 2. 24.
[Swift][프로그래머스][LV_2] 위장 요구능력 : Dictionary 코드설명 : 옷 입는 경우의수다. 상의 반팔티, 후드티, 맨투맨 하의 청바지, 슬렉스, 조거팬츠 위와 같이 있으면 옷을 입는 총 경우의 수는 9가지이다. 하지만 이 문제에서는 하나만 입는 경우의 수도 셌으므로 상의 반팔티, 후드티, 맨투맨, 안입음 하의 청바지, 슬렉스, 조거팬츠, 안입음 안입음까지 포함시켜줘야하고, 둘다 안입는 경우는 포함안시키기에 -1을 해줘야한다. 나는 dictionary를 활용해서 dictionary가 비어있지 않으면 1을 더해줬고 비어있으면 2로 초기화했다. 2로 초기화 한 이유는 dict[바지] 이면 현재 for문을 돌고있는 clothes의 원소중 바지하나가 도는것이기 때문에 현재바지 1개 + 안입음 1개 해서 2로 초기화했다. 그리고 결과값을 .. 2022. 2. 22.
[Swift][프로그래머스][LV_2] 양궁대회 요구능력 : 백트래킹 코드설명 : 문제를 잘 읽어야한다. 핵심적인 부분만 찝어보면 1) k점을 어피치가 a발 맞추고 라이언이 b발 맞췃는데 a >= b이면 어피치가 k점을 가져간다. 2) k점을 여러번 맞혀도 k점만 가져감, a = b = 0인 경우 둘 다 못가져간다. 3) 최종점수가 같을 경우 어피치가 우승자 4) 라이언이 어피치를 가장 큰 점수차이로 이기려고 한다. 5) 라이언이 우승 못하는경우 (지거나 비기는경우) -1리턴 6) 가장 큰 점수차이로 우승할 수 있는 방법이 여러가지 일 경우, 가장 낮은 점수를 더 많이 맞힌 경우를 return 문제의 설명을 읽고 입출력 예를 보고 나서 이 문제가 백트래킹 문제라는 것을 파악했다. 6) 조건을 보면 가장 낮은 점수를 더 많이 맞힌 경우를 return하.. 2022. 2. 22.