전체 글215 인프런 JAVA 알고리즘 정리(DFS, BFS 기초 1~6번) 1. 재귀함수 (스택프레임) public static void DFS(int n){ if(n==0){ }else { DFS(n-1); System.out.println(n); } } 2. 10진수를 2진수로 (재귀사용) public static void DFS(int n){ if(n==0){ }else { DFS(n/2); System.out.print(n%2); } } 3. 팩토리얼 public static int DFS(int n){ if(n==0){ return 1; }else { return n*DFS(n-1); } } 4. 피보나치 ( 재귀 + 메모리제이션 ) public class Main { static int[] arr; public static void main(String[] args).. 2023. 5. 1. 인프런 JAVA 알고리즘 정리(정렬 7번~10번) 7. 좌표정렬 // 일반 숫자 정렬이 아닌 좌표값을 정렬 - implements Comparable 정렬 기준을 정할 수 있다. - implements를 하면 정의해야 하는 compareTo 메서드를 정의해야 한다. class Point implements Comparable{ int x; int y; public Point(int x, int y){ this.x = x; this.y = y; } @Override public int compareTo(Point o) { if(o.x == this.x) return this.y-o.y; return this.x-o.x; } } 리턴해서 x를 기준으로 정렬을 한다면 this가 - 기호 앞에 오면 오름차순 this가 - 기호 뒤에 오면 내림차순 정렬 위의 코.. 2023. 4. 30. [코드스테이츠 백엔드 43기] PreProject 마무리 후기 PreProject 2주 간의 프리프로젝트가 끝이났다. 처음으로 프론트엔드와 백엔드를 구별하여 각각 파트를 나누어 업무를 진행하는게 전공자임에도 처음이기에 많이 낯설었으며 그와 동시에 드디어 개발을 한다는 설렘이 있었다. 신기하게도 프론트 백엔드 모든 인원들이 굉장히 친절하시고 밝으셔서 프로젝트 기획에 있어 큰 어려움은 없었다. 우리 백엔드는 각자의 기능 파트를 나누어 작업을 진행하였고 나는 그 중 답변이랑 시큐리티, OAuth 그리고 내가 팀원들 중 유일한 전공자였기에 팀원들의 어려움을 많이 해결해주려고 노력했었다. 답변 기능 - 답변기능도 간단하게 생각하면 테이블 하나를 추가하면 되지만 대댓글, 대대댓글과 같은 부분까지 생각한다면 테이블을 계속 늘리는건 똑같은 테이블을 계속 생성하게되는 낭비가 발생하.. 2023. 4. 28. 2023 한국장학재단 채용 전산직(it) 필기 후기 4월22일(토) 14시쯤에 필기시험을 보았다. - ncs후기 : 장학금 관련 계산문제가 많이 나와서 멘붕,,, 거기에 피셋형 문제들이 조금 난이도가 있어서 2차멘붕 그나마 모듈형은 쉽게 나와서 풀만 했던거 같았다. 그래서 ncs 시험이 끝나고 '아... 전공에서 복구해야 된다.' 라고 생각했다. -전공후기 : 전공 난이도는 그렇게 어렵지 않았다. 다만 보안관련된 문제가 생각보다 많이 나왔고 단순히 정처기 5파트에 나오는 보안 수준이 아니고 보안기사를 봐야 풀 수 있는 문제가 몇몇 나와서 찍었지만 보안 말고 다른 과목에서 난이도가 그렇게 높진 않아 수월하게 풀었다. 시험을 보고 난 후 예상 점수 ncs - 50후반 60초반 전공 - 70중후반 4월28일(금) 14시09분에 발표가 나왔다. ncs - 68... 2023. 4. 28. 2023 한국사회보장정보원 채용 전산직 면접 후기 한국사회보장정보원은 PT면접이 최종면접이였다. 합격인원의 5배수이기에 100명이 면접을 본다. ( 10-20명 정도는 안올것이라 예상) PT면접을 준비하기 위해 면접 스터디를 만들었다. 단톡방에 죄다 무슨 스터디구하기만 하고 만들 생각을 아무도 안하셔서 그냥 내가 만들어서 구했는데... 도통 쉽지 않았다. 온라인이라 그런지 사람들이 말을 징하게 안듣는다. 그래서 최종적으로 면접 2-3일 전에 날짜가 맞아 면접스터디를 했는데 면접 이렇게 어렵나?... 다들 말 잘하시는데 나만 도저히 무슨 말을 해야하는지... 주제를 논리적으로 말하는 능력이 굉장히 부족했다. 면접 준비 딸랑 하루했지만 하면서 솔직히 자존감이 많이 낮아졌다.(다들 왜이렇게 잘하는데?....) 면접을 준비해보니 높은 기술력과 많은 전공지식을 .. 2023. 4. 27. [스프링부트] AWS S3에 이미지 저장, 불러오기 스프링부트-S3(AWS) 1. 클라이언트에서 사진을 전달 받아 S3에 사진 저장하기 1. 클라이언트가 사진을 등록한다. 2. 사진이 서버에 전송이 된다. 3. 서버에서 사진을 S3에 전송한다. 4. S3에 사진을 저장한다. 클라이언트 -> 서버 파일전송 스프링부트-S3 사전작업 S3 연결작업 진행 (구글링 하시면 자세히 나온다) 진행이 완료되면 accessKey 랑 secretKey가 나온다. build.gradle 설정 dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' implementation 'org.springframework.boot:spring-boot-starter-da.. 2023. 4. 27. 컴파일 컴파일 기법 - 고급 언어로 작성된 프로그램을 컴퓨터가 바로 실행할 수 있는 프로그램으로 변환하는 방식 (컴파일러를 이용) 고급 언어의 컴파일 단계 1. 원시 프로그램 2, 어휘 분석 단계 3. 구문 분석 단계 4. 중간 코드 생성 단계 (의미 분석) 5. 최적화 단계 6. 코드 생성 단계 ( 기계어로 번역) 7. 목적 프로그램 (기계어 프로그램) C언어 컴파일 과정 // 위의 7단계를 축약해놓은 것 // 각각의 고급언어 마다 컴파일 과정이 약간식 다름 1. 전처리기(Preprocessor) 단계: #으로 시작하는 전처리기 지시자를 처리하여 소스코드를 수정하고, 필요한 헤더 파일을 포함시키는 등의 작업을 수행합니다. 2. 컴파일러(Compiler) 단계: 전처리된 소스코드를 어셈블리 코드(기계어)로 번역.. 2023. 4. 14. 인프런 JAVA 알고리즘 정리(정렬 1번~6번) 1. 선택정렬 - 배열의 가장 작은수를 찾아서 0번째 위치랑 스위칭 - 2중 for문 2.버블정렬 - 이웃한거 끼리 비교해서 앞에가 작고 뒤에가 더 크면 스위칭 - 2중 for문 3. 삽입정렬 - 뒤로 큰수를 비교하여 큰 수면 한 칸 씩 뒤로 밀린다. 4. LRU - ArrayList = list.set(2,5) // 2번 인덱스에 5번을 넣어라, 그럼 뒤의 수는 자랑으로 밀림 - ArrayList = list.add(2,5) // 동일 - ArrayList = list.indexOf(x) // x의 인덱스 위치 -삽입정렬 -캐시 미스 or 캐시가 꽉 차있다 = 뒤로 한 칸씩 미룸 -캐시 적중 = 적중한 인덱스 앞부터 뒤로 한 칸씩 미룸 5. 중복확인 중복 저장 안되는 리스트 - TreeSet 6. 장난.. 2023. 4. 14. JOIN ( CROSS JOIN, INNER JOIN, RIGHT JOIN, LEFT JOIN, FULL OUTER JOIN ) TABLE a, Table b CROSS JOIN (크로스 조인) = 카티션프로덕트 - 두개 이상의 테이블에서 모든 가능한 조합을 만들어내는것 where 조건을 추가하여 특정 행만 출력 INNER JOIN = JOIN (ON절이 필수 아님 - 크로스 조인과 같은 성능) - INNER JOIN은 두 개 이상의 테이블에서 공통된 칼럼(또는 칼럼의 조합)을 기준으로 두 테이블을 조인하여 새로운 결과 테이블을 생성하는 방법입니다. INNER JOIN은 기본적으로 "INNER JOIN" 또는 "JOIN"으로 표현됩니다. - 크로스 조인, 카티션프로덕트랑 같은 기능을 수행한다. LEFT OUTER JOIN - (ON절이 필수) RIGHT OUTER JOIN - (ON절이 필수) A의 데이터만 뽑기위해서 LEFT O.. 2023. 4. 13. 이전 1 2 3 4 5 6 7 ··· 24 다음