최신글
-
[코드트리 조별과제] 선택 정렬 구현
https://www.codetree.ai/missions/6/problems/implement-selection-sort?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정최솟값 인덱스를 선택한다.최솟값 인덱스와 최솟값 인덱스 다음 인덱스의 값을 비교해서, 최솟값 인덱스를 가진 배열의 크기가 더 크다면, 최솟값 인덱스 다음 값을 최솟값 인덱스로 재지정한다.이후 자리를 바꾸어준다. 나의 풀이import java.util.*;public class Main { publi..
-
[코드트리 조별과제] 삽입 정렬 구현
https://www.codetree.ai/missions/6/problems/implement-insertion-sort?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정target을 잡고 target의 앞에 위치한 값과 비교했을 때 앞의 값이 더 크다면 자리를 바꿔준다.while문이 실행되면서 j는 0까지 감소하며, 정렬된 부분에서 target 요소보다 큰 값들이 오른쪽으로 이동됨. 이때 arr[j+1]에 arr[j]의 값을 대입하여 요소를 오른쪽으로 밀어내는 것. 나의 ..
-
[코드트리 조별과제] 거품 정렬 구현(Bubble Sort)
https://www.codetree.ai/missions/6/problems/implement-bubble-sort?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정배열의 길이 -1만큼 배열을 순회한다.배열의 크기를 비교하여 앞에 위치한 값이 뒤에 위치한 값보다 크다면 위치를 변경해준다. 나의 풀이import java.util.*;public class Main { public static void main(String[] args) { Scanner sc..
-
[코드트리 조별과제] 정수 명령 처리 5
https://www.codetree.ai/missions/6/problems/process-numeric-commands-5?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정각각의 명령어와 입력값이 한줄로 주어짐 -> 공백을 기준으로 나누기각각의 명령어마다 다른 동작을 해야함 -> 명령어가 여러개이므로 if문 보다는 switch가 가독성과 유지보수 측면에서 더 나을 것이라 판단.parts[]는 크키가 1또는 2로 고정되어 있으므로 배열을 사용하고, 각각의 명령어에 따른 결..
-
[코드트리 조별과제] - 조금 복잡한 시간복잡도
https://www.codetree.ai/missions/6/problems/time-complexity-3?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정첫번째 문제k for문 -> 내부구문은 시간복잡도가 O(1), 0부터 i까지 i+1번 반복되기 때문에 시간복잡도가 O(i). 이떄 i는 최댓값이 n^2이므로 시간복잡도는 O(N^2)j for문 -> 내부구문은 시간복잡도가 O(1), j가 0부터 n까지 n+1번 반복되기 때문에 시간복잡도가 O(N)바깥 for문 -> n^..
JAVA
-
자바 기초 : 추상 클래스
핵심개념 추상 : 실체 간의 공통되는 특성을 추출한 것. ex) 고양이, 강아지, 새의 공통되는 특성을 추출할 시 동물이라 공통점이 있음. 여기서 동물이 실체들의 공통되는 특성을 가지고 있는 추상적인 것. 실체클래스 : 객체를 직접 실행할 수 있는 클래스 추상클래스 : 실체클래스들의 공통적인 특성(필드, 메소드)를 추출하여 선언한 것. 추상클래스와 실체클래스는 부모(추상) 자식(실체)클래스로서 상속 관계를 가짐. 추상클래스의 용도 1. 공통된 필드와 메소드의 이름을 통일할 목적 : 데이터와 기능이 동일함에도 불구하고 이름이 다르면 객체마다 사용방법이 달라지므로. 2. 실체 클래스를 작성할 때 시간 절약 : 공통적인 필드와 메소드는 추상클래스에 선언, 다른 점만 실체클래스에 선언 시 실체 클래스 작성 시간..
-
자바 기초 : 타입 변환과 다형성
핵심개념 타입변환 : 기본타입과 마찬가지로 클래스도 타입 변환이 있으며, 이를 활용하면 객체 지향프로그래밍의 다형성을 구현할 수 있다. 다형성 : 사용 방법은 동일하지만 다양한 객체를 활용해서 여러 실행결과가 나오도록 하는 성질. ex) 자동차가 타이어를 사용하는 방법은 동일. but 어떤 타이어를 사용하느냐에 따라 주행성능이 달라짐. 다형성을 구현하기 위해서는 메소드 재정의와 타입변환이 필요하다. -> 메소드 재정의 + 타입 변환 = 다형성 자동 타입 변환 : 프로그램실행 도중 자동으로 타입 변환이 일어나는 것. 클래스의 변환은 상속관계에 있는 클래스 사이에서 발생하며, 자식은 부모 타입으로 자동 타입 변환이 가능하다. 이때, 바로 위의 부모가 아니더라도 상속계층에서 상위 타입인 경우 자동 타입변환이 ..
-
자바 기초 : 상속
핵심개념 상속 : 객체지향프로그래밍에서 부모클래스의 멤버를 자식클래스에게 물려주는 것. 중복되는 코드를 줄여주며 유지 보수시간을 최소화한다는 장점이 있다. 클래스 상속 : 자식클래스 선언 시 어떤 부모 클래스를 상속받을 지 선택한뒤 extends 뒤에 부모클래스를 기술한다. ex) class 자식클래스 extends 부모클래스 { //필드 //생성자 //메소드 } 상속의 특징 1. 한개의 부모클래스만 상속받을 수 있다. 2. 부모클래스에서 private접근 제한을 갖는 필드와 메소드는 상속대상에서 제외된다. 3. 부모와 자식 클래스가 다르 패키지에 존재할 경우 default접근 제한을 갖는 필드와 메소드 역시 상속대상에서 제외된다. public class CellPhone { //필드 String mod..
-
자바 기초 : 패키지와 접근 제한자
핵심개념 패키지 : 프로젝트 개발 시 클래스를 체계적으로 관리하기 위해 패키지를 사용하며, 클래스와 클래스의 멤버를 사용범위에 맞게 접근 제한자를 활용해야한다. 패키지의 물리적인 형태는 파일 시스템의 폴더이고 패키지는 클래스의 일부분으로 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스의 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식하며 클래스의 전체 이름은 패키지+클래스 이름이며 패키지의 상하위 구분은 .으로 한다. 패키지 선언 : 클래스를 작성할 때 해당 클래스가 어떤 패키지에 속할 것인지를 선언하는 것 ex) package 상위패키지.하위패키지; public class ClassName {...} 패키지 이름 규칙 1. 숫자로 시작x, $ 또는 _ 제외 특수문자 사용 불가 2. ja..
HTML, CSS
-
HTML, CSS (작업물) : 10_배경이미지포함레이아웃
10_배경이미지포함레이아웃(웹페이지) 10_배경이미지포함레이아웃(코드)
-
HTML, CSS (작업물) : 09_배경이미지
09_배경이미지(웹페이지) 09_배경이미지(코드)
-
HTML, CSS (작업물) : 08_테두리, 그림자 콘텐츠
08_테두리, 그림자 콘텐츠(웹페이지) 08_테두리, 그림자 콘텐츠(코드) -overflow: hidden : 내부 요소가 부모의 요소에 침법할 때 사용한다. 부모 요소에 적용 시 영역을 벗어나는 부분이 보이지 않게 된다. -overflow: scroll : 영역을 벗어나는 부분은 스크롤로 만든다.
-
HTML, CSS 기초 (작업물) : 07_테두리, 그림자(border, box-shadow)
07_테두리, 그림자(웹페이지) 07_테두리, 그림자(코드) -border : 선의굵기 선타입 색상; 속성값 : solid, dotter, dashed, double, groove, ridge, inset, outset -box-shadow : x축 y축 blur(흐릿함정도) spread(그림자의크기) 색상; x축이 양수일 경우 오른쪽에, 음수일 경우 왼쪽에 그림자 생성 y축이 양수일 경우 아래쪽에, 음수일 경우 위쪽에 그림자 생성 inset은 그림자의 효과를 안쪽으로 적용
자료구조, 알고리즘 입문
-
자료구조와 알고리즘 인강 정리 : 재귀-하노이탑
하노이탑 게임 : 한 수학자가 개발한 게임으로 세개의 기둥과 서로 다른 크기의 원반이 있으며 이 원반은 위로 갈수록 작은 원반으로 이루어져 있다. 하나의 기둥에 있는 원반들을 다른 기둥으로 옮겨야하는데 이때 아래의 규칙을 준수해야한다. 1. 한 번에 하나의 원반을 움직일 수 있다. 2. 가장 위에 있는 원반만 옮길 수 있다. 3. 아래에 작은 원반이 올 수 없다. 하노이탑을 하향식 방식으로 접근 후 계산 (순서대로 스택에 하나씩 쌓인다.) 기둥 A에 있는 원반 1,2,3을 기둥 c로 옮기려고 함. 스택1 : 원반3을 기둥 C로 옮김 스택2 : 원반2,1을 기둥 B로 옮김(하위문제) 스택3 : 원반 2,1을 기둥 B로 옮기기 위해서는 원반1이 기둥 C로 이동해야함. -> 바로 C로 이동시킬 수 있으므로 더..
-
자료구조와 알고리즘 인강 정리 : 연결리스트 구현
연결리스트 구현 추상자료형 : 어떠한 데이터와 그 데이터를 연산하는 기능을 표기하는 것 ex)세탁기의 여러가지 빨래기능-빨래, 탈수, 남은시간, 배수 등(연산) 옷(데이터) 세탁기의 여러가지 기능만 나열했을 뿐 구체적인 구현방법은 나오지 않음(추상) 연결리스트의 추상자료형 -> 자바스크립트로 표현 1. 연결리스트의 모든 데이터 출력 -> printAll() 2. 연결리스트의 모든 데이터를 제거 -> clear() 3. 인덱스 삽입 -> insertAt(index, data); 4. 마지막 데이터 뒤에 데이터를 삽입하는 기능 -> insertLast(data) 5. 인덱스 삭제 -> deleteAt(index); 6. 마지막 데이터를 삭제 -> deleteLast(); 7. 원하는 인덱스에 있는 데이터 읽..
-
자료구조와 알고리즘 인강 정리 : 배열, 연결리스트
배열 배열 : 프로그래밍 언어에서 기본적으로 제공하는 자료구조 프로그래밍 언어에서 배열을 선언할 때 배열의 크기를 알려준다 int arr[10] = {1,2,3,4,5}; 위와 같이 배열을 선언할 때 운영체제는 메모리에서 숫자 10개가 들어갈 수 있는 연속된 빈공간을 찾아 배열의 값을 할당한다. 할당하지 않은 부분은 의미없는 값이 저장되어있다. 배열의 장점 : 배열의 인덱스 참조는 길이에 상관없이 한 번에 가져오기 때문에 O(1)의 성질을 가진다. 따라서 배열은 참조에서 좋은 성능을 보인다. 배열의 단점 : 배열의 참조 성능은 좋지만, 데이터의 삭제, 삽입 성능은 좋지 않다. 배열의 크기가 계속 커진다면 메모리가 늘어난 만큼의 연속된 공간을 다시 찾아야 하기 때문. 즉, 연속된 메모리 공간이 필요하고, ..
-
자료구조와 알고리즘 인강 정리 : 시간복잡도
시간 복잡도 : 특정 알고리즘이 어떤 문제를 해결하는 데 걸리는 시간. 실행되는 n의 크기마다 실행되는 조작의 수를 나타낸다. 좋은 알고리즘은 사용자의 요구에 따라 달라진다.(메모리 사용이 적은 것, 속도가 더 빠른 것) 일반적으로 알고리즘의 속도를 성능의 속도로 사용한다. 하지만 사용자마다 컴퓨터 사양이 다르기 때문에 시간으로 알고리즘을 평가하기에는 문제가 있음. 따라서 알고리즘을 평가할 때는 코드에서 성능에 많은 영향을 주는 부분을 찾아 실행시간을 예측한다. 코드에서 성능에 많은 영향을 주는 부분은 반복문! 여러번 반복될때마다 느려진다. 배열에서 특정한 값을 찾는 코드 주어진 배열에서 10을 찾으시오. 1 3 5 8 10 --------------------------------------------..
코딩테스트
-
[코드트리 조별과제] 선택 정렬 구현
https://www.codetree.ai/missions/6/problems/implement-selection-sort?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정최솟값 인덱스를 선택한다.최솟값 인덱스와 최솟값 인덱스 다음 인덱스의 값을 비교해서, 최솟값 인덱스를 가진 배열의 크기가 더 크다면, 최솟값 인덱스 다음 값을 최솟값 인덱스로 재지정한다.이후 자리를 바꾸어준다. 나의 풀이import java.util.*;public class Main { publi..
-
[코드트리 조별과제] 삽입 정렬 구현
https://www.codetree.ai/missions/6/problems/implement-insertion-sort?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정target을 잡고 target의 앞에 위치한 값과 비교했을 때 앞의 값이 더 크다면 자리를 바꿔준다.while문이 실행되면서 j는 0까지 감소하며, 정렬된 부분에서 target 요소보다 큰 값들이 오른쪽으로 이동됨. 이때 arr[j+1]에 arr[j]의 값을 대입하여 요소를 오른쪽으로 밀어내는 것. 나의 ..
-
[코드트리 조별과제] 거품 정렬 구현(Bubble Sort)
https://www.codetree.ai/missions/6/problems/implement-bubble-sort?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정배열의 길이 -1만큼 배열을 순회한다.배열의 크기를 비교하여 앞에 위치한 값이 뒤에 위치한 값보다 크다면 위치를 변경해준다. 나의 풀이import java.util.*;public class Main { public static void main(String[] args) { Scanner sc..
-
[코드트리 조별과제] 정수 명령 처리 5
https://www.codetree.ai/missions/6/problems/process-numeric-commands-5?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 문제 풀이과정각각의 명령어와 입력값이 한줄로 주어짐 -> 공백을 기준으로 나누기각각의 명령어마다 다른 동작을 해야함 -> 명령어가 여러개이므로 if문 보다는 switch가 가독성과 유지보수 측면에서 더 나을 것이라 판단.parts[]는 크키가 1또는 2로 고정되어 있으므로 배열을 사용하고, 각각의 명령어에 따른 결..