
시간 복잡도(Time Complexity)는 프로그래밍에서 알고리즘의 효율성을 측정하는 방법 중 하나입니다. 구체적으로, 시간 복잡도는 어떤 알고리즘이 문제를 해결하는 데 얼마나 많은 시간이 소요되는지를 나타내는 지표입니다. 이는 일반적으로 알고리즘에 입력되는 데이터의 크기에 따라 어떻게 변화하는지를 나타냅니다. 시간 복잡도를 이해하기 위해서는 다음의 개념들을 알아야 합니다: 빅 오 표기법 (Big O Notation) 가장 널리 사용되는 시간 복잡도 표현 방법으로, 최악의 경우를 나타냅니다. 예를 들어, O(n)은 알고리즘이 입력 데이터의 크기(n)에 비례하여 실행 시간이 증가한다는 것을 의미합니다. 상수 시간 (Constant Time) - O(1) 입력 데이터의 크기와 상관없이 알고리즘의 실행 시간..

- 문제 출처: https://www.acmicpc.net/problem/1152 - 해결 방법 주어진 문제의 입력은 공백을 포함한 단어들이 한 줄에 주어지며, 단어의 개수를 파악해야 합니다. String s = "True Is Fact"라는 문자열이 주어졌다고 가정합니다. e를 가리키는 인덱스의 +1한 인덱스의 문자는 공백이며 공백이 단어를 구분해줍니다. 따라서 if(s.charAt(i)==' '&&s.charAt(i-1)!=' ')의 조건이 참이 될 경우만 단어의 개수를 하나씩 더해줍니다. 이렇게 더해진 단어의 개수는 맨 마지막의 단어의 개수를 더해주지 않기 때문에 반환할 때는 그 값에 1을 더해줍니다. 단, 여기서 문제가 되는 것이 있습니다. 공백만 입력되는 경우와 공백없이 단어 하나만 입력되는 경..

설명을 하기 앞서 참고한 소스코드의 출처를 밝힙니다. 출처: http://stompesi.tistory.com/32#comment12022832 Fractal이란? (출처: http://terms.naver.com/entry.nhn?docId=933753&cid=43667&categoryId=43667) 작은 구조가 전체 구조와 비슷한 형태로 끝없이 되풀이 되는 구조를 말합니다. (아래와 같은 그림을 프랙탈(Fractal)이라고 하며 다양한 형태가 존재합니다.) 문제 출처: https://www.acmicpc.net/problem/2448 제시된 문제를 보시면 입력은 자연수 N이 입력됩니다. 이 때, N은 항상 3*2^k(3, 6, 12, 24, 48, ...) (k