분류 전체보기

카테고리 없음

[삼성SDS] 24년 하반기 대학생 알고리즘 특강(Day1) : 알고리즘 기초(DFS, BFS)

*DFS, BFS는 그래프 알고리즘에서 기초가 되는 탐색 방식으로 반드시 숙지가 필요하다. DFS깊이 우선 탐색(Depth First Search)그래프 탐색 방법의 한가지한 경로로 탐색하다 특정 상황에서 최대한 깊숙하게 들어가서 확인 후 다시 돌아가 다른 경로로 탐색하는 방식일반적으로 재귀함수를 사용하여 풀이한다.(stack을 사용하는 문제는 거의 드물다)백트레킹, 단절선 찾기, 단절점 찾기, 위상정렬, 사이클 찾기 등에 사용된다. 풀이 팁현재 방문하고 있는 노드에만 관여한다.필요한 정보(부모가 누구인지, 얼마나 걸렸는지)는 코드를 작성하다 추가하도록 한다.추가하는 방식은 1) 파라미터로 넘기기 2) static 전역 변수 선언하기 방식이 있다. 풀이 순서 (들여쓰기 주의)체크인단순 방문 여부만 체크하..

JAVA

[Java] Java의 정석 - 객체지향 프로그래밍(상속-super)

정보처리기사 때 헷갈렸던 개념을 이제서야 정리해본다.super자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수이다.조상 클래스로부터 상속받은 멤버도 자손 클래스 자신의 멤버이므로 super대신 this를 사용할 수 있지만 서로 구별해야하는 경우에 super를 사용하는 것이 좋다. super 예제코드1조상 클래스와 자손 클래스의 멤버 변수가 같은 경우public class SuperTest { public static void main(String[] args) { Child c = new Child(); c.method(); }}class Parent { int x = 10;}class Child extends Parent { int x = 20; void method(..

JAVA

[Java] Java의 정석 - JVM의 메모리 구조

Java의 기초 개념 중에 메모리 구조를 파악하고 기억해둬야할 것 같아 기록해둔다. JVMJava Virtual Machine의 줄임말.OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터자바로 작성된 어플리케이션은 모두 이 가상 컴퓨터 (]VM)에서만 실행되기 때문에,자바 어플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.자바의 중요한 장점 중 하나인 “ Write once , run anywhere.C 한 번 작성 하면 어디서든 실행된다 )"이 가능하게 되는 것이다.  메모리구조응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. *cv(=클래스 변수), l..

TOOL

[GitHub] amend : 파일 수정 후 이전 커밋에 합치기

--amend, --no-eidt 실수로 파일 하나를 빼버렸거나, 파일의 오타 등으로 수정이 있을 때 이전 커밋에 합치는 기능이다. --no-eidt 를 적어주면 커밋 메세지 수정을 안한다. git add filename git commit --amend --no-edit --amend와 --no-edit 옵션을 조합하여 Git의 커밋을 효율적으로 관리할 수 있다.

WEB/JavaScript

[JavaScript] 객체 메소드(Object methods)

객체 메소드 1. Object.assign() 객체 복제 user를 복사하고 싶다고 그냥 cloneUser에 대입해서 될까? const user = { name : 'susukkang', age : 30 } const cloneUser = user; 답은 '아니다' user 변수에는 객체 자체가 들어가 있는 것이 아니라, 객체가 저장되어 있는 메모리 주소인 객체에 의한 참조값이 저장된다. 그러므로 cloneUser에는 데이터가 들어가지않고 참조값이 들어간다. Object.assign() 사용 const newUser = Object.assign({}, user); 이렇게 사용해야 newUser에 user의 값들이 복제된다. 병합1 const newUser2 = Object.assign({gender:'f..

카테고리 없음

[Alpine.js] Alpine.js 시작하기

Alpine.js🔎 HTML에 인라인 JavaScript를 사용하여 간단한 인터랙티브 웹 애플리케이션을 만들 수 있도록 도와주는 라이브러리이다. 알파인.js는 가벼우면서도 강력한 기능을 제공하며, 다른 복잡한 프론트엔드 프레임워크나 라이브러리에 비해 진입 장벽이 낮다. 공식 사이트에 사용방법이 매우 잘 나타나 있다. 공식 사이트 : https://alpinejs.dev/start-here Start Here — Alpine.js Start Here Create a blank HTML file somewhere on your computer with a name like: i-love-alpine.html Using a text editor, fill the file with these contents: ..

TOOL

[Tool] 소스트리와 깃허브로 개인브랜치에서 메인브랜치로 합치기

1. 개인브랜치) 커밋 커밋된 상태 2. 개인브랜치) push 3. 메인) pull 원격 메인에서 로컬 메인으로 당겨온다. 4. 메인) 개인 브랜치 우클릭 - 병합 후 Push Push 머지 완료 커밋메시지로 깃허브에 잘 올라간 상태인 것을 확인할 수 있다.

Python

[Python] 파이썬의 자료형(숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합)

파이썬 같은 경우는 특별하게 개발자가 변수를 할당하면서 데이터 타입을 따로 지정하지않는다. 숫자형🔎 숫자형에는 int, float 가 존재한다. - 정수형(int) a = 10 b = -5 - 실수형(float) c = 3.14 d = -0.5 - 자료형 확인 type(a) > 출력 : int type(c) > 출력 : float 문자열🔎 꽃따옴표(') 또는 큰따옴표(")를 사용하여 선언한다. - 문자열(String) g = "Hello, Python!" h = 'Single quotes are also valid.' - 자료형 확인 type(g) > 출력 : str - 값 추출하기(인덱싱) g[0] > 출력 : 'H' g[0:5] > 출력 : 'Hello' 리스트 🔎 인덱스는 0부터 시작한다. - 리스..

카테고리 없음

[Python] Python3 주피터로 시작하기

1. 아나콘다 설치 - 설치 파일 실행 별 다른 설정 없이 그냥 Next와 Agree 를 선택한다. - 설치 확인 윈도우 검색창에 anaconda 를 검색했을 때, anaconda prompt가 검색된다면 설치가 완료된 것이다. 2. 주피터 실행 - anaconda prompt 실행 $ jupyter-lab 해당 명령어로 jupyter 를 실행한다. 아무런 설정없이 위 명령어를 실행하면 사용자 HOME에서 jupyter 파일이 생성된다. 다른 폴더에서 작성하고 싶으면 해당 폴더로 이동 후 jupyter 를 실행한다. (사진 속 위치는 Desktop(바탕화면) - study - python_inflearn_class 폴더에서 실행하였다.) 3. 주피터 사용하기 새로운 인터넷 창으로 JupyterLab 페이..

코딩테스트/백준

[코테] 백준 17484번 : 진우의 달 여행 (java)

❓문제 https://www.acmicpc.net/problem/17484 17484번: 진우의 달 여행 (Small) 첫줄에 지구와 달 사이 공간을 나타내는 행렬의 크기를 나타내는 N, M (2≤ N, M ≤ 6)이 주어진다. 다음 N줄 동안 각 행렬의 원소 값이 주어진다. 각 행렬의 원소값은 100 이하의 자연수이다. www.acmicpc.net 🔅해석 문제 분류가 DP와 브루트포스 알고리즘으로 분류되어 dfs로 접근해야겠다고 생각했다. 1. 깊이우선탐색으로 지구에서 달까지 가는 경로를 다 탐색한다. 2. 단, 같은 방향으로 2번 이상 갈 수 없으니, 이전 방향과는 다르게 전진해야한다. → 갈 수 있는 방향은 미리 배열로 선언해둔다. dirY = {-1, 0, 1}; 3. 마지막 단계에서 해당 경로의..

developer of the night sky
'분류 전체보기' 카테고리의 글 목록 (4 Page)