본문 바로가기

전체 글

(21)
자바로 html 생성하기, BufferedWriter, e.printStackTrace() 자바로 html 생성하기 자바에서는 File class에서 파일과 디렉터리를 다룬다! Run을 해주면 "index.html" 파일이 생성된다. import java.io.*; public class Main { public static void main(String[] args) { try{ File file = new File("index.html"); BufferedWriter writer = new BufferedWriter(new FileWriter(file)); //sout 대신 BuffedWriter 사용, 사용 전 만들어주고, close 해준다. StringBuilder html = new StringBuilder(); //StringBuilder로 추가하기 html.append("\n");..
4월 첫째주, 그리고 둘째주 재귀함수 함수 내부에서 자기 자신을 호출하는 함수를 의미한다. 재귀함수를 사용할 때 주의점은, 종료조건을 명확하게 설정해야 무한루프에 빠지지 않는다는 점이다. ex.재귀함수를 이용한 알고리즘: 피보나치 수열, 이진탐색(정렬된 배열에서 원하는 데이터를 빠르게 찾을 때 사용), 유클리드 호제법(최대공약수 계산, 간단한 코테에서 출제가능), 이항계수 Scanner vs BufferedReader 가장 중요한 차이점은 Scanner는 다양한 타입을 입력받을 수 있으며 다양한 함수 사용이 가능하지만 BufferedReader는 String 타입만 입력받는 것이 가능하지만 속도는 매우 빠르다. String 타입을 입력받으며, 코드 길이가 길 땐 BufferedReader를 사용이 효율적일 수 있다. 배열에서 내림차..
[Java] Scanner vs BufferedReader 코린이 시점에서 쓰는 Scanner와 BufferedReader 특징과 차이점입니다-! 여지껏 백준 문제를 풀 때, 항상 Scanner 만 사용했다. 그리고 강의 중에서 Scanner를 많이 사용한다고 했다. 하지만, 역시 코딩을 시작한지 얼마 안된 시점에서, 백준 문제가 풀리지 않을 때, 문제에 대한 감이 안올 때, 다른 사람들의 코드를 보면 Scanner 말고도 BufferedReader를 사용해 푸는 걸 볼 수 있었다. BufferedReader의 장점은 무엇이며, 어떻게 사용하는 건지 찾아보다 둘을 정리해보려고 생각이 들어 아래와 같이 정리한다. 어떤 사람은 Scanner 클래스를 사용했을 때 시간초과가 나 BufferedReader를 이용해 푸니 해결되었다고 한다. 먼저 알 수 있는점은 Buff..
선형자료구조 연결리스트(Linked List) 연결리스트(Linked List) 데이터를 링크로 연결해서 관리하는 자료구조 자료의 순서는 정해져 있지만, 메모리상 연속성이 보장되지는 않음 연결리스트의 장점 데이터 공간을 미리 할당할 필요x -> 즉, 리스트의 길이가 가변적이라 데이터 추가/삭제 용이 연결리스트의 단점 연결구조를 위한 별도 데이터 공간 필요 연결 정보를 찾는 시간이 필요(접근 속도가 상대적으로 느림) 데이터 추가, 삭제 시 앞뒤 데이터의 연결을 재구성하는 작업 필요 연결리스트 기본구조 ✔️노드(Node): 데이터 저장 단위로, 값과 포인터(다음 노드나 이전 노드의 연결 정보)로 구성 연결리스트 기본연산 ✔️데이터 추가: 어디에 데이터를 추가할지에 따라 연결 작업이 다르다! -가장 앞에 데이터를 추가할 때: 1. 추가할 데이터를 담을 노..
백엔드 신입 개발자가 쌓아야 하는 역량은? 도서관에 책들이 놓여있는 모습을 상상해보자 아무렇게나 책을 정리하게 되면 나중에 책을 찾을 때 시간이 오래 걸리게 될 것이다. 쉽게 책을 찾기 위해 분야별로 그리고 가나다 순으로 책을 놓는다고 생각해보면.. 이후 원하는 책을 찾을 때, 책이 정리되어 있는 규칙을 알기 때문에 어떤 분야인지 그리고 어떤 초성으로 시작하는지 확인하면 빠르게 찾을 수 있을 것이다. 이때 책이 정리되어 있는 규칙은 자료구조, 책을 찾는 가장 빠른 방법은 알고리즘이 되게 된다. (출처: https://velog.io/@guswnee00/%EB%B0%B1%EC%97%94%EB%93%9C-%EC%8B%A0%EC%9E%85-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%8C%93%EC%95%84%EC%95%B..
[JAVA] 점화식과 재귀함수, 최대공약수 재귀함수로 구현하기, 정렬의 종류 점화식(Recurrence) 어떤 수열의 일반항을 그 이전의 항들을 이용해 정의한 식 ex. 피보나치 수열 1 ,1 ,2, 3, 5, 8, 13... 재귀함수 어떤 함수가 자신을 다시 호출하여 작업을 수행하는 방식 종료조건이 무조건 존재한다! 코드 구현: public class Main { static int recursion1(int n){ if (n == 1){ //종료조건 return 1; } return 3* recursion1(n-1); //자기자신을 불러온다 } static int recursion2(int n){ if (n ==1){ return 1; } return n+ recursion2(n-1); } static int recursion3(int n){ if (n < 3) { retur..
3월 5주차 리마인드! 4월 첫째주에는 결국 백엔드 개발자에게 나중에 발휘될 지식은 바로 알고리즘과 자료구조(CS지식)이다. 선형자료구조: 배열, 연결리스트, 스택, 큐, 데크, 해시테이블 비선형자료구조: 트리(+이진탐색트리), 그래프, 힙, 우선순위 큐, 트라이 많이 쓰이는 배열(Array)에 대해. Array vs ArrayList 공통점: 1. 요소를 추가할 땐 add, 요소를 가져올 땐 get을 사용한다.(일정한 시간에 실행) 2. 둘 다 중복되는 요소를 저장할 수 있다. 3. Null 값을 저장할 수 있고, index를 사용해 값을 참조할 수 있다. 4. 순서 지정은 되지 않는다. 차이점: 1. 길이를 조정할 수 있는 건 ArrayList(가변 길이), 길이 조정이 안되는 건 Array(고정 길이) -> 새로운 데이터 추가 시 또 ..
[JAVA]비선형 자료구조 그래프, 그래프 vs 트리, 그래프의 종류, 그래프 탐색, 그래프의 구현 그래프(Graph): -정점과 간선으로 이루어진 자료구조(Cyclic), 연결된 정점간의 관계를 표현할 수 있는 자료구조 -그래프의 용도: 지하철 노선도, 통신 네트워크, ... -그래프 용어: -그래프 vs 트리: 그래프 트리 개요 노드와 간선으로 이루어진 자료구조 그래프의 한 종류 방향성 방향 그래프, 무방향 그래프 둘 다 방향 그래프 사이클 Cyclic Acyclic 모델 네트워크 모델 계층 모델 루트 노드 루트 노드 X 최상위 노드 부모-자식 X 인접한 상하위 노드 간선 수 그래프에 따라 다름 N-1개 순회 DFS, BFS Pre-,In-, Post-order/ Level-order 경로 2개 이상의 경로 가능 두 노드 간의 경로는 오직 1개 트리는 그래프의 한 종류이다! -그래프의 종류: 1. ..