[JAVA 기초] 1. JAVA의 특징
Tech/Java&Spring2021. 1. 6. 22:43[JAVA 기초] 1. JAVA의 특징

SSAFY 5기 사전학습으로 JAVA를 공부하면서, 내용 정리겸 약간의 업데이트를 해보았습니다. JAVA의 특징이 표준화 되어 있지는 않지만 사전학습에서 언급된 내용과 일부 블로그를 참고하여 정리했습니다. JAVA의 특징 객체지향(Object-Oriented) 자바는 객체지향 언어(Object Oriented Programming)로 OOP 언어라고도 하며 객체지향 개념이 적용된 C++을 기초로 하여 만들어진 언어입니다. 절차지향 언어인 C언어와 반대되는 특성을 가졌는데요, 절차지향과 객체지향은 이후에 한번 더 다루도록 하겠습니다. 객체지향을 하게 되면 재사용성(Reusability)을 높일 수 있습니다. - 단순히 코드의 재사용을 넘어선 객체의 재사용을 뜻합니다. - 프로그램 개발에 필요한 수많은 클래..

백준 16236 아기상어 풀이 python, java
OnlineJudge2021. 1. 3. 16:37백준 16236 아기상어 풀이 python, java

문제로이동 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 목차 시작하기 전에 골드4의 난이도임에도 불구하고 개인적으로 많이 헤맸던 문제입니다. 오기가 생겨 이틀 정도 틈틈이 시간투자를 했지만 결국 검색을 통해 해결했습니다. 문제 설명이 꽤 복잡해 보이지만 한 번 자세히 보면 생각보다 간단한 문제이니 처음 읽을 때 유심히 보시는 것을 추천합니다. 문제 설명 상어는 9로 나타낸다. 아무 것도 없는 공간은 0으로 나타낸다. 1~6은 물고기의 크기를 나타낸다. 상어의 최초 크기는 2이다. 상어의 현재 크기보다..

삼성 청년 SW 아카데미 SSAFY 5기 합격 후기
후기/SSAFY2020. 12. 28. 16:55삼성 청년 SW 아카데미 SSAFY 5기 합격 후기

자소서 준비 방법 자소서 항목의 세부적인 내용은 자소서(에세이) 후기에 남겨놨다. 당연한 얘기지만 작성하는 글자 수는 상관 없다. 1000자 쓴다고 붙는거 아니고 500자 쓴다고 떨어지는 거 아니다. 나는 어느곳에 자소서를 쓰던 늘 하던 루틴이 있다. 1. 내가 진행했던 프로젝트 나열 및 내용 정리 2. 내가 경험했던 에피소드(썰) 시간순으로 나열 자, 이 중에서 어떤 내용으로 자소서를 쓸 지 정해야 한다. SSAFY는 취업이 아닌 교육이므로 열정, 학습의지를 기준으로 몇 가지를 뽑아냈다. 그 에피소드나 경험을 아래의 세 가지 방법으로 정리했다. 1. 내가 배우고자 하는 이유 2. 내용의 일관성 3. 단순히 에피소드 나열로 끝나는게 아닌 결과물 또는 느낀점 단순히 자소서에서 끝나는 게 아니라 면접에서도 ..

삼성 청년 SW 아카데미 SSAFY 5기 인터뷰(면접) 후기
후기/SSAFY2020. 12. 28. 00:54삼성 청년 SW 아카데미 SSAFY 5기 인터뷰(면접) 후기

보안 문제로 인하여 인터뷰와 관련된 상세한 내용은 기재하지 않으니 참고 바랍니다. 인터뷰 일정 로드뷰길찾기지도 크게 보기 이번 인터뷰(면접)는 4일간 2020.12.08(화) ~ 2020.12.11(금) 삼성전자 인재개발원 서천 연수원에서 진행됐다. 그룹마다 면접일과 시간이 다 다르다. 정확히 몇 시부터 몇 시까지 있는지 몇 타임이나 존재하는지는 모르지만, 오픈 채팅방 면접자들 정보에 의하면 오전 7시 30분부터 오후 4시 정도까지 있는 것을 확인했다. 매 기수마다 정보가 달라질 수 있으니 SSAFY에서 공지해주기 전까지 기다리는 편을 추천한다. 나는 12.09(수) 오후 12시경 면접이었다. 면접이 끝나고 나서 알았는데 지인도 같은 조에 편성되어 있었다. S-방역(인재개발원 방역) 하필 인터뷰 기간이 ..

삼성 청년 SW 아카데미 SSAFY 5기 SW적성진단 후기
후기/SSAFY2020. 12. 25. 20:09삼성 청년 SW 아카데미 SSAFY 5기 SW적성진단 후기

시험 응시 2020.11.21(토) 오전/오후로 나뉘었다. 비전공/전공을 따로 나눠서 치는 것 같진 않았다. 시험 종료 후 오픈 채팅을 보니 문제는 랜덤 하게 섞이고 사람마다 문제가 아예 다른 경우도 있다고 한다. 이번에 처음으로 인증샷을 보내야 하는 과정이 추가됐다. 일부 응시자들은 공지를 제대로 읽지 않아 누락되어 떨어지는 경우도 있었다. 메일, 문자로 오는 공지사항을 대충 읽지 말고 꼼꼼하게 읽어서 억울하게 떨어지지 말자. 수리/추리 논리력(객관식) 이걸 주어진 시간에 다 푸는 사람이 있을까.. 난 마지막까지 풀다가 10초 정도 남았을 때 허둥지둥 찍어서 냈다. 그 와중에 3문제 정도는 체크도 못하고 자동 제출됐다 ㅠㅠ 9문제 / 총 15문제로 마무리 Computational Thinking(주관식..

삼성 청년 SW 아카데미 SSAFY 5기 자소서(에세이)/접수 후기
후기/SSAFY2020. 12. 22. 21:26삼성 청년 SW 아카데미 SSAFY 5기 자소서(에세이)/접수 후기

지원한 이유? 나는 입학부터 쭉 정보보안을 공부해 왔다. 물론 개발을 등한시하지는 않았고 대부분의 프로젝트는 보안보다는 개발로 진행했다. 2020년 초에 ETRI인턴(체험형) VS 취약점분석인턴(취업연계형) 중 하나를 선택하는 일이 있었는데, 나루토 vs사스케 급으로 박빙이었다. 개발과 보안을 선택해야 하는 일이어서 앞으로의 장래에 영향을 미칠 것이라 생각했기 때문이다. 결국 나는 개발업무를 진행하는 ETRI 인턴을 선택했다. 그 이유는 단순히 "개발이 더 재밌어서", "더 배우고 싶어서"였다. 지원서 작성에 여러 항목이 있다. 인적/학력사항과 관련된 정보는 생략하고 내 스펙은 마지막에 기재해뒀다. 경력 및 어학 경력사항 ETRI 인턴과 전역 후 정직원으로 일했던 사항을 적었다. 어학사항 나는 토익, 오..

세그먼트 트리(Segment Tree) 알고리즘
Tech/알고리즘2020. 12. 21. 22:12세그먼트 트리(Segment Tree) 알고리즘

이게 뭐야? 트리 종류 중에 하나이며, 연속된 구간(특정 범위)의 합(최솟값, 최댓값, 곱 등)을 구하는데 많이 쓰인다. 아래에서 선형구현과 비교하며 왜 쓰는지, 어떻게 사용하는지 gif를 준비해 놨으니 자세히 알아보자. 세그먼트 트리 문제 보기 문제 - 1 페이지 www.acmicpc.net 일단 결과부터 보자 입력된 수는 10의 7제곱이다. 10개의 데이터 [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]를 두고 구간 합을 구해본다. 예시 입력 : 1 10 예시 출력 : 55 선형 구현 O(N) 초기화 과정 O(N) ARRAY = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for i in range(1,len(ARRAY)): ARRAY[i] += ARRAY[i-1] 1 3 6..

Codeforces Round #691 (Div. 2) B. Move and Turn 풀이
OnlineJudge2020. 12. 20. 00:14Codeforces Round #691 (Div. 2) B. Move and Turn 풀이

문제 문제로 이동 Problem - B - Codeforces codeforces.com 목차 문제 설명 전형적인 규칙 찾는 문제이다. 개인적으로 A보다 쉬웠다. 2차원 좌표평면 가운데에서 로봇은 동, 서, 남, 북으로 1미터씩 움직일 수 있다. 단, 한쪽 방향만으로 갈 수는 없고 북쪽으로 한 칸 이동 했다면 그 다음엔 서, 동으로 이동 남쪽으로 한 칸 이동 했다면 그 다음엔 서, 동으로 이동 서쪽으로 한 칸 이동 했다면 그 다음엔 북, 남으로 이동 동쪽으로 한 칸 이동 했다면 그 다음엔 북, 남으로 이동해야 한다. 이 때 N 값 만큼 이동할 수 있는데, 로봇이 갈 수 있는 공간의 개수를 출력하라는 문제다. 자세한건 예시를 보자. 예시 그림으로 설명하자면 동, 서, 남, 북으로 이동하기 때문에 결과적으로..

Codeforces Round #691 (Div. 2) A. Red-Blue Shuffle 풀이
OnlineJudge2020. 12. 19. 23:52Codeforces Round #691 (Div. 2) A. Red-Blue Shuffle 풀이

문제 문제로 이동 Problem - A - Codeforces codeforces.com 목차 문제 설명 두 수가 주어진다. 각 숫자의 위치를 바꾸는 여러가지 경우의 수 중 첫번째 수가 두번째 수보다 더 큰 확률이 높다면 RED를, 두번째 수가 첫번째 수보다 더 큰 확률이 높다면 BLUE를 같다면 EQUAL을 출력하라. 예시 위 입력 값으로 나오는 경우의 수는 아래와 같다. 1,2,3 순으로 나열 : 314>159 RED 1,3,2 순으로 나열 : 341>195 RED 2,1,3 순으로 나열 : 1342,3,1 순으로 나열 : 1433,1,2 순으로 나열 : 4313,2,1 순으로 나열 : 413RED 2, BLUE 4로 BLUE가 출력된다. 규칙 굳이 모든 수를 바꿔가며 비교할 필요가 없다. RED :..

백준 2042 구간 합 구하기/세그먼트트리
OnlineJudge2020. 12. 18. 22:54백준 2042 구간 합 구하기/세그먼트트리

문제로 이동 목차 문제 설명 구간합 문제다. 이 게시물에서는 세그먼트 트리를 이용해 해결한다. 충분히 단순 반복문으로 해결할 수 있지만 그런 경우, 구간 합을 구하는데 O(n)이 걸린다. 이런 과정이 M번 반복된다면 O(MN)이 된다. 구간합 뿐만 아니라 특정 위치의 수를 변경시키는 기능도 있다. 해당 위치의 수가 바뀌면 그보다 큰 위치의 합도 모두 변경해야 하므로 TLE가 날 수 밖에 없다. 세그먼트 트리를 이용하면 O(Mlog(N))으로 해결할 수 있다. 소스 코드 소스코드 import sys input = sys.stdin.readline tree = list() nodes = list() #ChangeIdx : 수정할 인덱스, ChangeNum : 수정할 숫자 def update(start, en..

image