[백준] 열 개씩 끊어 출력하기 - 11721번
·
여러가지/알고리즘 & 자료구조
[Bronze III] 열 개씩 끊어 출력하기 - 11721문제 링크 성능 요약메모리: 14280 KB, 시간: 124 ms분류문자열, 구현제출 일자2024년 6월 1일 00:14:29문제 설명알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.입력 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.출력 입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.코드import java.io.*;public class Main { p..
[백준] KMP는 왜 KMP일까? - 2902번
·
여러가지/알고리즘 & 자료구조
[Bronze II] KMP는 왜 KMP일까? - 2902문제 링크느낀점다른 풀이 중 StringTokenizer를 보았으며 아주 유용하다는 사실을 알게 되었다.StringTokenizer st = new StringTokenizer(br.readLine(), "-")int tokenSize = st.countTokens();while(st.has성능 요약메모리: 14188 KB, 시간: 104 ms분류구현, 문자열제출 일자2024년 5월 31일 23:38:37문제 설명KMP 알고리즘이 KMP인 이유는 이를 만든 사람의 성이 Knuth, Morris, Prett이기 때문이다. 이렇게 알고리즘에는 발견한 사람의 성을 따서 이름을 붙이는 경우가 많다.또 다른 예로, 유명한 비대칭 암호화 알고리즘 RSA는 이..
동적 프로그래밍과 반대 개념 프로그래밍
·
여러가지/알고리즘 & 자료구조
동적 프로그래밍과 반대 개념 프로그래밍동적 프로그래밍 개요동적 프로그래밍은 주어진 문제를 더 작은 하위 문제들로 나누어 풀고, 그 결과를 저장하고 재활용하여 문제를 해결하는 알고리즘 설계 기법입니다. 큰 문제를 작은 하위 문제로 쪼개서 해결하면서 중복 계산을 피하고 효율적으로 문제를 해결할 수 있습니다.  핵심 특징:문제 분해: 큰 문제를 작은 하위 문제들로 분해합니다.메모이제이션: 하위 문제의 해결 결과를 저장하고 재사용합니다.최적 해 찾기: 하위 문제들의 최적 해를 조합하여 전체 문제의 최적 해를 찾습니다.장점:효율성 향상: 중복 계산을 줄여 시간 복잡도를 낮출 수 있습니다.문제 해결 범위 확대: 재귀 호출 없이 큰 규모의 문제를 해결할 수 있습니다.코드 명확성 향상: 재귀 호출 구조를 피해 코드를 ..
[백준] 피보나치 수1 - 24416번
·
여러가지/알고리즘 & 자료구조
[Bronze I] 알고리즘 수업 - 피보나치 수 1 - 24416문제 링크성능 요약메모리: 16068 KB, 시간: 488 ms분류다이나믹 프로그래밍, 수학제출 일자2024년 5월 31일 16:54:50문제 설명오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍으로 구하는 알고리즘을 배웠다. 재귀호출에 비해 동적 프로그래밍이 얼마나 빠른지 확인해 보자. 아래 의사 코드를 이용하여 n의 피보나치 수를 구할 경우 코드1 코드2 실행 횟수를 출력하자.피보나치 수 재귀호출 의사 코드는 다음과 같다.fib(n) { if (n = 1 or n = 2) then return 1..
[백준]알고리즘의 수행 시간 6 - 24267
·
여러가지/알고리즘 & 자료구조
[Bronze II] 알고리즘 수업 - 알고리즘의 수행 시간 6 - 24267문제 링크 성능 요약메모리: 14256 KB, 시간: 116 ms분류구현, 수학, 시뮬레이션제출 일자2024년 5월 31일 15:28:48문제 설명오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자.MenOfPassion 알고리즘은 다음과 같다.MenOfPassion(A[], n) { sum 입력 첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이 주어진다.출력 첫째 줄에 코드1 의 수행 횟수를 출력한다.둘째 줄에 코드1의 수행 횟..
[백준]알고리즘의 수행 시간 2 - 24263번
·
여러가지/알고리즘 & 자료구조
[Bronze IV] 알고리즘 수업 - 알고리즘의 수행 시간 2 - 24263문제 링크성능 요약메모리: 15888 KB, 시간: 140 ms분류구현, 시뮬레이션제출 일자2024년 5월 31일 09:53:18문제 설명오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자.MenOfPassion 알고리즘은 다음과 같다.MenOfPassion(A[], n) { sum 입력첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이 주어진다.출력첫째 줄에 코드1 의 수행 횟수를 출력한다.둘째 줄에 코드1의 수행 횟수를 다항식으..
[백준]알고리즘의 수행 시간 4 - 24265번
·
여러가지/알고리즘 & 자료구조
[Bronze III] 알고리즘 수업 - 알고리즘의 수행 시간 4 - 24265문제 링크성능 요약메모리: 14240 KB, 시간: 120 ms분류사칙연산, 구현, 수학, 시뮬레이션제출 일자2024년 5월 31일 15:44:37문제 설명오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자.MenOfPassion 알고리즘은 다음과 같다.MenOfPassion(A[], n) { sum 입력첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이 주어진다.출력첫째 줄에 코드1 의 수행 횟수를 출력한다.둘째 줄에 코드1의 ..
시간복잡도
·
여러가지/알고리즘 & 자료구조
개념시간 복잡도는 알고리즘의 효율성을 측정하는 데 사용되는 중요한 개념입니다. 이는 알고리즘이 실행되는 데 걸리는 시간과 입력 데이터의 크기 사이의 관계를 나타냅니다. 시간 복잡도를 분석함으로써 우리는 알고리즘이 입력 크기가 커짐에 따라 얼마나 빠르게 실행 시간이 증가하는지 예측할 수 있습니다.시간 복잡도를 설명할 때 주로 사용되는 표기법은 빅오 표기법(Big-O notation)입니다. 빅오 표기법은 최악의 경우를 나타내며, 알고리즘의 성능을 표현하는 데 사용됩니다.주요 시간 복잡도 종류하나. O(1) - 상수 시간 복잡도 (Constant Time)입력 크기와 상관없이 항상 일정한 시간이 걸리는 알고리즘.예: 배열의 특정 인덱스에 접근하기.둘. O(log n) - 로그 시간 복잡도 (Logarithm..