Today 8/8queue를 사용하는 FIFO형식의 탐색방법이다.count라는 이중배열을 하나 더 만들어서 더 빠르게 걸린 시간을 기록하는 방법을 배웠다.Array()를 통해 String을 하나씩 쪼개서 배열로 만들어주는 것을 배웠다.(-1, 0),(1, 0),(0,
Today 4/7계산 속도가 빠르기 때문에 실용적이다.항상 최적의 결과를 도출하는 것은 아니다.탐욕 알고리즘이 성립하려면 두 가지 조건이 성립하여야 한다.탐욕스런 선택 조건(Greedy choice property) - 앞의 선택이 뒤의 선택에 영향을 주지 않는다.부분
Today 3/31 Heap [자료구조] 그림으로 쉽게 보는 힙(Heap) 개념과 코드 힙은 일종의 트리로 수의 집합에서 가장 작은 수나 가장 큰 수만을 꺼내올 때 유용한 자료구조이다. 완전이진트리를 베이스로 구성된다. 배열로 구현될 수 있는데, 자식은 {자신
Today 1/16어떤 유형인지 파악이 오래 걸렸다. 계속 생각하다가, 이것도 재귀함수로 풀 수 있지 않을까 하는 생각이 들었다.그러고 4사분면으로 나눠서 각 사분면의 시작 숫자의 규칙이 있나 살펴보았다. 각 사분면은 4^N-1 \* (사분면의 숫자-1)로 시작하는 규
Today 1/15인접한 배추를 탐색해야하는 DFS,BFS 문제이다. 어떤 방식으로 하던 상관은 없을 것 같아서 DFS 재귀를 한 번도 사용을 안해본 것 같아서 재귀를 사용해서 풀어보기로 했다.다른 해답들을 보니 dx,dy로 상하좌우 경우의 수를 배열로 설정하고, 반복
Today 1/14스크린샷 2022-01-08 오후 2.48.06.png이를 만족시키는 이항 계수를 구하는 문제이다. 0이 될 경우는 문제에서 이미 범위를 두어 생각할 필요가 없으므로, 팩토리얼 부분만 구현하면 된다.재귀함수로 구하니 간단한데도 시간이 많
Today 1/7배열에 저장하고 몇 개 있는지 하나씩 세면 분명히 시간초과가 날 것 같아서 Dictionary 타입으로 저장을 하고, 같은 key가 나올 때마다 value를 하나씩 +하는 방법으로 풀었다. 조금 더 개선해보기로 했다. stack.last가 있는지 검사하
Today 1/5스택을 사용하면 쉽게 풀 수 있는 문제이다.앞의 문제와 거의 똑같은 문제이지만. 더 빨리 풀어보고 싶어서 서칭을 좀 했는데, 아예 stack을 안쓰고 Int값으로 풀 수도 있을 것 같았다.가장 큰 수를 max로 잡아서 보다 아래 있는 것들을 세야 하나
Today 12/29최대공약수 찾는 법을 몰라서 stride()로 뒤에서부터 하나씩 돌려봤다. 다행히도 최소공배수는 최대공약수를 통해 구했는데, 이상한 것 같아서 수정.GCF로 두 번 나누고 한 번 곱할꺼면 애초에 한 번 나누는게 ... 바본가또한 유클리드 호재법을 배
Today 12/29구현보다도 최솟값 설정과 예외처리가 더 어려웠다. 아무리 작아져도 자릿수 9를 뺀 수보다는 커야되겠다고 생각하고 \`input-(9inputDigit)\`를 최솟값으로 설정했다. 또한 여기서 자릿수 \* 9를 뺀 수가 음수가 되는 것을 방지하기 위
Today 12/29FIFO의 Queue문제이다. 시간을 빠르게 하기 위해 버리는 카드를 직접 버리지 않고, index만 옮겨서 풀었다.
Today 12/27처음에는 .contains()를 써서 쉽게 가려했지만 아니나 다를까 시간초과가 되었다.이전에 썻었던 이진 탐색을 써서 문제를 해결했다.input을 받는 과정에서 시간이 많이 걸리는 것 같아, 그리고 다른 분들의 답안을 보았을 때, 라이노님의 File
Today 12/24스택을 이용한 문제여서 배열을 통해 스택을 구현했다.처음에는 input, stack, output이렇게 세 개의 배열로 구성했는데, 생각해보니 input의 경우에는 1부터 차례대로 들어가니까 그냥 int로 생성하고 ++해도 될 것 같아서 int로 대
Today 12/23이분탐색으로 풀 수 있는 문제이다. 이분탐색을 이용한다는 점을 처음에 찾지 못해서 구글링의 도움을 받았다.그 다음부터는 그냥 구현하면 되는 부분이라서 쉬웠고, 알던 사실들도 다시 한 번 정리했다.while min <= max로 while문을 돌
Today 12/22제곱을 구할 때는 pow(value, Int), 제곱근을 구할 때는 sqrt(value)를 사용하면 된다. 어제 배웠던 부분을 활용해서 if로 끝을 걸러주는 것이 아닌 while 차원에서 걸러서 더 가독성이 좋도록 만들어보았다.같은 카드를 중복하여
Today 12/19완전탐색 말고 다른 방법이 있을까 고민하다가 방법이 없을 것 같아서 4중 for문으로 풀어봤다.근데 다른 방법이 없는 것 같기도 하다.. Idea & Solvingrow+col%2가 0인 곳을 W라고 그냥 가정을 해버리고, 그렇게 되면, row+c
while let input = readLine()을 생각하는게 어려웠다. 이건 시행착오였는데, 옵셔널 체이닝을 해줘서 아무 것도 들어오지 않았을 때에는 런타임 에러가 발생했다. 이를 해결하기 위해 guard let을 사용해서 이런 식으로 해결할 수 있었다.