[백준] 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는 이..
[항해99 취업리부트 TIL] 2주차 4일
·
스케쥴/스터디
오늘 진행된 강의에서 학습한 내용은 무엇인가요? 1. 문자열 뒤집기 (Reverse String): - 주어진 문자열의 문자 순서를 반대로 만드는 작업입니다. - StringBuilder를 사용한 방법, 반복문을 사용한 방법, 비효율적인 방법을 각각 설명하였습니다. 2. 문자열 압축 (String Compression): - 주어진 문자열에서 반복되는 문자를 숫자로 표현하여 압축하는 작업입니다. - StringBuilder와 반복문을 사용하여 문자열을 압축하는 방법을 설명하였습니다. 3. 문자열의 모든 순열 찾기 (Find All Permutations of a String): - 주어진 문자열의 모든 가능한 순열을 생성하는 작업입니다. - ..
동적 프로그래밍과 반대 개념 프로그래밍
·
여러가지/알고리즘 & 자료구조
동적 프로그래밍과 반대 개념 프로그래밍동적 프로그래밍 개요동적 프로그래밍은 주어진 문제를 더 작은 하위 문제들로 나누어 풀고, 그 결과를 저장하고 재활용하여 문제를 해결하는 알고리즘 설계 기법입니다. 큰 문제를 작은 하위 문제로 쪼개서 해결하면서 중복 계산을 피하고 효율적으로 문제를 해결할 수 있습니다.  핵심 특징:문제 분해: 큰 문제를 작은 하위 문제들로 분해합니다.메모이제이션: 하위 문제의 해결 결과를 저장하고 재사용합니다.최적 해 찾기: 하위 문제들의 최적 해를 조합하여 전체 문제의 최적 해를 찾습니다.장점:효율성 향상: 중복 계산을 줄여 시간 복잡도를 낮출 수 있습니다.문제 해결 범위 확대: 재귀 호출 없이 큰 규모의 문제를 해결할 수 있습니다.코드 명확성 향상: 재귀 호출 구조를 피해 코드를 ..
[백준] 피보나치 수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의 ..
[항해99 취업리부트 TIL] 2주차 3일
·
스케쥴/스터디
오늘 진행된 강의에서 학습한 내용은 무엇인가요?요약1. 자바 표준 라이브러리 활용Math 클래스: 제곱근 계산, 절대값 계산 등 수학 관련 함수 제공Collections 유틸리티 클래스: 컬렉션 프레임워크 관련 유틸리티 함수 제공 (예: 리스트 정렬)Random 클래스: 난수 생성 (범위 지정 가능)LocalDateTime 클래스: 날짜와 시간 처리 (현재 날짜/시간, 특정 형식으로 변환)Arrays 클래스: 배열 관련 유틸리티 메서드 (예: 배열 정렬, 복사)2. String 함수 활용concat(): 두 문자열 연결trim(): 문자열 앞뒤 공백 제거startsWith()와 endsWith(): 문자열 시작/끝 확인contains(): 문자열 포함 여부 확인replace(): 문자열 내용 교체spli..