
시간 복잡도(Time Complexity)입력의 크기와 문제를 해결하는데 걸리는 시간의 상관관계빅오 표기법(Big-O Notation)주어진 식을 값이 가장 큰 대표항만 남겨서 나타내는 방법ex) O(N): 5N+3, 2n+10logNO(n^2) : N^2, 6n^2+

컴퓨터로 구현할 수 있는 효율적인 문제해결 방법 및 풀이
주어진 문제를 2개 이상의 작은 문제로 순환적으로 분할하여 각각 해결한 후 다시 각각의 해들을 결합하여 원래 문제를 해결하는 방식입력 크기가 작아짐분리된 작은 문제는 서로 독립적분할 : 주어진 문제를 작은 문제로 분할 정복 : 작은 문제를 순환적으로 더 이상 분할 되지
오랜만에 코딩 테스트 문제를 풀었는데, 문제 자체를 이해하는 데 시간이 꽤 걸렸다.해결 방법은 얼핏 떠올랐지만, 코드로 구현하는 과정에서 반복문을 최소한으로 쓰고 싶다는 강박 때문에 막혔다.입력값을 받는 단계에서 모든 걸 처리하려고 하다 보니, 오히려 구현을 확립하는
크게 어려운 부분은 없었지만,문자열 구분에 필요한 ASCII 코드 값이 바로 떠오르지 않았던 것이 가장 막히는 포인트였다 🤔한참 고민하다 결국 검색의 힘을 빌렸지...!소문자, 대문자, 숫자, 공백 각각에 해당하는 ASCII 코드 값을 검색해서조건문으로 분기 처리를
크게 어려운 점은 없었고,단순하게 큐 구현 자체에만 집중했던 것 같다.문제의 숨은 의도나 조건을 깊이 보지 못한 점이 아쉬웠다.Java의 List를 사용해서FIFO (선입선출) 원칙에 맞춰 큐를 구현해보았다.단순하지만 큐의 동작 원리를 이해하는 데 도움이 되었다.문제에
HashMap을 직접 구현해야 한다는 과제가 생각보다 쉽지 않았다.Key와 Value가 객체로 이루어진다는 기본 개념은 이해했지만,이 객체들을 내부적으로 배열로 관리할지, List로 할지, 아니면 LinkedList를 사용할지 결정하는 부분에서 상당히 고민이 많았다.특
정렬을 하는 알고리즘이 너무 많아 그 중에 어떤 것을 선택해야 할지 어려웠다.여러 가지 방법이 떠오르지 않아, 그나마 기억에 남아 있던 버블 정렬을 사용하여 적용했다.하지만 선택 과정에서 시간 복잡도나 효율성에 대한 고려가 부족했던 점이 아쉬웠다.중복을 제거하기 위해
오늘은 크게 어려운 점은 없었던 것 같다.문제를 이해하고 접근하는 과정이 비교적 수월했다.문자열에서 \*(별표)를 기준으로 문자열을 분리한 뒤,substring() 메서드를 이용하여 원하는 부분을 잘라내고 비교하는 방식으로문자열 일치 여부를 확인했다.Java의 Stri
사실 처음에 피보나치 점화식도 발견하지 못했어요.단순하게 문제를 해결하려고 팩토리얼 공식을 이용했는데,n을 2로 나눈 몫과 나머지를 활용해 팩토리얼 계산을 하려고 했다. 점화식을 도출하는 것 자체가 어려웠다.팩토리얼로 문제를 풀려고 했고,n의 몫과 나머지를 저장해 값을
문제 해결의 핵심 아이디어는 도출했다.즉, x 좌표가 동일한 경우나 y 좌표가 동일한 경우가 2개 이상 존재하는 상황을 파악했다.하지만 이를 어떤 자료형으로 표현하고 다루어야 할지 판단하지 못했다.x 좌표 또는 y 좌표가 동일한 경우가 2개 이상일 때이를 어떻게 구현할