[항해99 취업리부트 TIL] 3주차 1일
·
스케쥴/스터디
오늘 진행된 강의에서 학습한 내용은 무엇인가요?보고서: 스택, 큐, 덱 비교 분석1. 서론본 보고서는 컴퓨터 과학에서 중요한 자료구조인 스택, 큐, 덱의 특징, 작동 방식, 활용 사례, 그리고 각 자료구조 간의 비교 분석을 제공합니다. 2. 스택2.1. 개요스택은 Last In, First Out (LIFO) 또는 First In, Last Out (FILO) 방식을 따르는 자료구조입니다. 즉, 가장 마지막에 삽입된 요소가 가장 먼저 제거되는 방식으로 작동합니다. 2.2. 특징LIFO/FILO 방식: 마지막에 들어간 데이터가 가장 먼저 나옵니다.push, pop, peek 연산:push: 스택의 맨 위에 요소를 추가합니다.pop: 스택의 맨 위 요소를 제거하고 그 값을 반환합니다.peek: 스택의 맨 위..
[항해99 취업리부트 TIL] 2주차 6일
·
스케쥴/스터디
항해99 리부트 알고리즘 1주차의 첫 알고리즘 코테를 진행하였다. 4개중 2개를 풀고 이를 복기해본다. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?[백준] 스위치켜고끄기 - 1244https://www.acmicpc.net/problem/1244 스위치 배열 상태 변경 프로그램의 핵심 로직을 분석합니다. 이 로직은 학생들의 명령에 따라 스위치의 상태를 변경하는 기능을 수행합니다.1. 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StringReader;import java.util.StringTokenizer;public class Main { stat..
[항해99 취업리부트 TIL] 2주차 5일
·
카테고리 없음
오늘 진행된 강의에서 학습한 내용은 무엇인가요?자바의 이차원 배열1. 개요이차원 배열은 행과 열로 구성된 데이터 구조입니다. 각 행은 여러 개의 열로 구성되며, 각 열은 하나의 값을 가지고 있습니다. 이는 격자 형태로 데이터를 표현하는 데 유용하며, 표, 행렬, 게임 보드 등 다양한 상황에서 활용됩니다.2. 이차원 배열 선언 및 초기화이차원 배열은 다음과 같은 방식으로 선언 및 초기화할 수 있습니다.// 선언int[][] array = new int[행의 수][열의 수];// 초기화array[0][0] = 10; // 첫 번째 행 첫 번째 열에 10 저장array[1][2] = 20; // 두 번째 행 세 번째 열에 20 저장위 코드는 array라는 이름으로 5행 3열의 이차원 배열을 선언합니다. new..
[백준] 끝말잇기 - 28432번
·
카테고리 없음
성능 요약메모리: 14212 KB, 시간: 112 ms 분류구현, 문자열 제출 일자2024년 6월 1일 10:58:35 문제 설명 끝말잇기는 단어를 중복하지 않고 단어의 맨 끝 글자에 이어서 말하는 놀이입니다. 끝말잇기 기록은 단어들의 나열로 이루어집니다. 올바른 끝말잇기 기록은 각 단어의 마지막 글자가 다음 단어의 첫 글자이며, 단어가 중복되어서 나타나면 안 됩니다.끝말잇기 기록이 주어지는데, 하나의 기록은 “?”로 가려진 채로 들어옵니다. “?”에 들어갈 수 있는 문자열들의 후보가 주어질 때, 올바른 끝말잇기 기록을 만드는 “?”에 들어갈 문자열을 출력하세요. 입력첫 줄에 끝말잇기 기록의 길이 N𝑁 이 주어집니다. (1≤N≤100)(1≤𝑁≤100) 둘째 줄부터 다음 N𝑁개의 줄에는 끝말잇기의 기..
[백준] 열 개씩 끊어 출력하기 - 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는 이..
[항해99 취업리부트 TIL] 2주차 4일
·
스케쥴/스터디
오늘 진행된 강의에서 학습한 내용은 무엇인가요? 1. 문자열 뒤집기 (Reverse String): - 주어진 문자열의 문자 순서를 반대로 만드는 작업입니다. - StringBuilder를 사용한 방법, 반복문을 사용한 방법, 비효율적인 방법을 각각 설명하였습니다. 2. 문자열 압축 (String Compression): - 주어진 문자열에서 반복되는 문자를 숫자로 표현하여 압축하는 작업입니다. - StringBuilder와 반복문을 사용하여 문자열을 압축하는 방법을 설명하였습니다. 3. 문자열의 모든 순열 찾기 (Find All Permutations of a String): - 주어진 문자열의 모든 가능한 순열을 생성하는 작업입니다. - ..
동적 프로그래밍과 반대 개념 프로그래밍
·
여러가지/알고리즘 & 자료구조
동적 프로그래밍과 반대 개념 프로그래밍동적 프로그래밍 개요동적 프로그래밍은 주어진 문제를 더 작은 하위 문제들로 나누어 풀고, 그 결과를 저장하고 재활용하여 문제를 해결하는 알고리즘 설계 기법입니다. 큰 문제를 작은 하위 문제로 쪼개서 해결하면서 중복 계산을 피하고 효율적으로 문제를 해결할 수 있습니다.  핵심 특징:문제 분해: 큰 문제를 작은 하위 문제들로 분해합니다.메모이제이션: 하위 문제의 해결 결과를 저장하고 재사용합니다.최적 해 찾기: 하위 문제들의 최적 해를 조합하여 전체 문제의 최적 해를 찾습니다.장점:효율성 향상: 중복 계산을 줄여 시간 복잡도를 낮출 수 있습니다.문제 해결 범위 확대: 재귀 호출 없이 큰 규모의 문제를 해결할 수 있습니다.코드 명확성 향상: 재귀 호출 구조를 피해 코드를 ..