Algorithm123 [Swift][Math] 백준 1339번 (단어 수학) 요구능력 : Math공식 코드설명 : 문제를 이해하는건 어렵지않다. 입력받는거부터 보면 단어를 떨어뜨려서 주지않고 붙여서준다. 이럴때는 한줄입력받고 그대로 for문에 넣어서 아래와 같이 쪼개주면 된다. for i in 0.. 2021. 12. 17. [Swift][BFS] 백준 16948번 (데스 나이트) 요구능력 : BFS의 사용 코드설명 : 큐에 저장할 때 좌표와 이동횟수를 함께 저장해줬다. 좌표를 활용하는것이기 때문에 방문여부역시 2차원배열을 사용했다. isChecked는 이동할 수 없는경우에 -1을 출력하기위해 선언하였다. 처음에 큐에 r1, c1이 저장되어있는 arr[0]과 arr[1] 그리고 이동횟수인 0을 넣어준다. 방문처리를 해주고 큐에 있는걸 꺼내준다. 큐에서 꺼내준 r과 c가 r2(arr[2]), c2(arr[3])과 같다면 이동이 끝났으므로 이동횟수인 pop.1을 출력해준다. 그 후 아래에는 문제에 적혀있는데로 최소한의 조건을 만족하면이동할 수 있는 곳으로 이동할 수 있도록 처리해준다. 그리고 isChecked가 그대로 true이면 이동할 수 없는 경우이므로 -1을 출력해준다. 후기 :.. 2021. 12. 14. [Swift][BFS] 백준 16928번 (뱀과 사다리 게임) 요구능력 : 요구조건에 따른 BFS를 잘 설계할 수 있는지 코드설명 : 이 문제는 기본적인 BFS를 이해하고 있으면 간단하게 풀릴것 같지만 조건을 아주 잘 지켜줘야 정답에 통과가된다. 우선 나는 튜플을 이용해서 (현재있는위치, 이동횟수)를 큐에 삽입하는 방식으로 문제를 해결했다. 다른 블로그들보면 딕셔너리 많이 사용하던데 나는 그냥 각각 2차원 배열에 사다리[x, y]와 뱀의 위치[u, v]를 넣어줬다. 그리고 BFS를 통해서 처음시작위치가 1이고 이동횟수는 0이기 때문에 큐에 (1,0)을 넣어주었다. 방문처리도 꼼꼼히 해준다. 그리고 형식적인 BFS의 공식..?같은 느낌으로다가 큐가 비어있지않으면 계속해서 while문을 돌려준다. 그리고 큐니까 맨앞에서 뽑아온다.(pop에 저장) 문제가 100에 도착했.. 2021. 12. 14. [Swift][BruteForce] 백준 1748번 (수 이어쓰기 1) 요구능력 : 식을 잘 만들 수 있는지 코드설명 : i를 자릿수라고 생각하자. 1의 자리가 있는 수 i가 1일때 count += n - 1 + 1이다. 10의 자리가 있는 수 i가 10일때 count += n - 10 + 1이다. 100의 자리가 있는 수 i가 100일때 count += n - 100 + 1이다. 101이라는 수가 n으로 들어왔다고 가정해보자. 이해하기 쉽게 역순으로 설명해보자면, i가 100일때 count += 101 - 100 +1 이다. 100의 자리에는 100과 101두개가 들어가므로 2가 나온다. i가 10일때 count += 101 - 10 + 1이다. 10의자리부터는 10~101까지이므로 92개가 나온다. i가 1일때 count += 101 - 1 + 1이다. 1의자리부터는 1.. 2021. 11. 23. 이전 1 2 3 4 5 6 7 ··· 31 다음