개발자의 일상

    [Kotlin] 코틀린(Kotlin)과 자바(Java) 비교

    1. 코틀린을 추천하는 이유2017년 구글 안드로이드 개발 공식 언어로 코틀린 지정코틀린으로 개발한 결과 코드베이스 크기가 33% 줄고 NPE 비정상 종료가 30% 감소자바보다 간결// javapublic class Main { public stastic void main(String[] args) { System.out.println("Hello World"); }}// kotlinfun main() { println("Hello World")}Null satetyJava Java 컴퍼일러는 NPE(NullPointerException)의 발생을 방지하지 못함NPE는 항상 런타임(서비스 운영 중)에 발생하며 사용자에게 불편NPE가 발생하는 위치를 명확히 알려주지 못하는 경우도 많음Kotli..

    2022년 한 해 정리 :: 비전공자에서 제로베이스 백엔드 스쿨을 통한 개발자 취업

    요즘 IT쪽 취업에 관심이 많을 거 같아 백엔드 분야 취업 과정에 대한 경험을 공유하여 많은 도움을 드리려고 합니다!!2022년에 제로베이스 백엔드 스쿨 1기를 수료하고 현재 금융 IT에서 근무하고 있습니다. 해당 과정의 시작부터 꿀팁까지 도움이 될 만한 부분만 정리해드릴게요!! 📌백엔드 취업 스쿨에 입과하게 된 계기저는 수학과를 졸업하고 AI 빅데이터 아카데미를 참여한 경험이 있습니다. 그거와 별개로 수학을 좋아해서 수학과를 졸업한 거고 데이터 분야는 수학과 당시에도 배운 경험도 있기도 하고 이걸 바탕으로 조금 더 나아가도 좋겠다 싶어서 데이터 아카데미를 참여하게 되었습니다. 하지만, 그 과정 속에서 프로젝트를 진행하면서 팀원 중 벡엔드 개발을 진행하는 것을 보고 벡엔드에 대한 호기심이 생겨 다양한 ..

    [백준_1927] 최소 힙

    문제 백준 1927번 https://www.acmicpc.net/problem/1927 널리 잘 알려진 자료구조 중 최소 힙이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. x는 231보다 작은 자연수 또는 0이고, 음의 정수는 입력으로 주어..

    [백준_9461] 파도반 수열

    문제 백준 9461번 https://www.acmicpc.net/problem/9461 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) 각 테스트 ..

    [백준_12605] 단어순서 뒤집기

    문제 백준 12605번 https://www.acmicpc.net/problem/12605 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다. 첫 행은 N이며, 전체 케이스의 개수이다. N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다. N = 5 1 ≤ L ≤ 25 각 케이스에 대해서, 케이스 번호가 x일때 "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다. 생각해보기 Code..

    [백준_1303] 전투

    문제 백준 1303번 https://www.acmicpc.net/problem/1303 전쟁은 어느덧 전면전이 시작되었다. 결국 전투는 난전이 되었고, 우리 병사와 적국 병사가 섞여 싸우게 되었다. 그러나 당신의 병사들은 흰색 옷을 입고, 적국의 병사들은 파란색 옷을 입었기 때문에 서로가 적인지 아군인지는 구분할 수 있다. 문제는 같은 팀의 병사들은 모이면 모일수록 강해진다는 사실이다. N명이 뭉쳐있을 때는 N2의 위력을 낼 수 있다. 과연 지금 난전의 상황에서는 누가 승리할 것인가? 단, 같은 팀의 병사들이 대각선으로만 인접한 경우는 뭉쳐 있다고 보지 않는다. 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (..

    [백준_12865] 평범한 배낭

    문제 백준 12865번 https://www.acmicpc.net/problem/12865 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. 첫 줄에 물품의 수 N(1 ≤ ..

    [JAVA] Java의 동작 원리

    Java 동작 원리 1. 작성한 Source Code를 Complier를 통해 Byte Code로 변환(파일명.java → 파일명.class) 2. Compile된 Byte Code를 코드 편집기를 통해 JVM의 Class Loader에게 전달 3. Class Loader는 Runtime Data Area, 즉 JVM 메모리에 올린다 4. 이후, Execution Engine은 JVM 메모리에 올라온 Byte Code를 명령어 단위로 하나씩 가져와 실행