_

Always be tactful

728x90

2025/02 18

[DA] 비전공자 ADsP 2일 전사 후기

ADsP 제44회 응시하였습니다. 번아웃이 와서 미루고 미루다가 시험 이틀 전부터 준비했습니다. 가채점 돌려보니 56-62점 사이로 나올 것 같네요. 기억나지 않는 게 딱 3문항 있거든요. 이 중에서 2개 이상 맞혔다면 턱걸이 합격 가능할 것 같습니다.1일 차 유튜브 아답터가 유명하길래 일단 아래 영상부터 시청하였습니다. 시간이 촉박한지라 냅다 기출 박치기로 전략을 짰습니다. 들으면서 한 번에 이해하려고 하지 않았고 대강 들은 뒤 바로 기출로 넘어갔습니다. ADsP - 아답터 기출문제집은 작년에 데이터 분석 프로젝트를 마무리하며 선물 받은 게 있어서 「ADsP 모든 것」이라는 교재 사용했습니다. 1과목, 2과목 연습문제 위주로 싹 풀었어요. 대강 60% 이상 맞혔고 틀린 문항들 답지 보면서 점검했어요. ..

[Java] BOJ 18870: 좌표 압축과 랭킹 알고리즘

문제수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.이해하기좌표 압축을 적용한 값 X'i가  Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같다. 중복되는 원소가 같은 순위를 가진다는 점이 마치 SQL Server에서의 DENSE_RANK 느낌인데, 이 문제에서 추가로 고려할 점은 값이 작을수록 순위가 높다는 것과 가장 높은 순위는 0순위라는 점이다. 중복되는 원소를 같은 순위로 둔다는 점을 고려할 때, 일단 Set이나 Map을 활용..

[Java] BOJ 18258: LinkedList vs ArrayDeque

문제정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 큐에 들어있는 정수의 개수를 출력한다.empty: 큐가 비어있으면 1, 아니면 0을 출력한다.front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. BOJ에서 제공하는 큐 문제다. LinkedList와 ArrayDeque 모두 큐 자료구조를 구현할 ..

[Java] MVC 패턴: 로또 애플리케이션 만들기 2편

이번에 만드는 로또 애플리케이션은 다음 기능을 포함한다. 1. 로또 게임 구매    ㄴ 사용자로부터 금액을 입력받는다.    ㄴ 입력받은 금액이 유효한지 검증한다.    ㄴ 제공할 로또 게임 수를 계산하고 자동으로 출력한다. 2. 로또 게임 비교    ㄴ 사용자로부터 당첨번호를 입력받는다.    ㄴ 당첨번호가 유효한지 검증한다.    ㄴ 자동으로 생성한 로또 게임들과 당첨번호를 비교한다. 3. 당첨 결과 확인    ㄴ 당첨 결과를 출력한다.    ㄴ 수익률을 계산하여 출력한다.자가점검 InputView는 사용자입력만을 담당한다. 입력받은 값이 유효한 금액으로 처리될 수 있는지는 controller에서 판단한다. 예외가 발생하면 다시 InputView로부터 입력을 받는다. 입력값이 숫자로 파싱 되는가에 대..

[Java] BOJ 1550: Integer.parseInt()

BufferedReader를 쓰면서 문자열을 숫자 값으로 전환하는 일이 많았다. 그래서 Integer.parseInt()가 자연히 몸에 배어있었는데, 이게 특정 진법으로 해석해 숫자 값을 뱉는 친구라는 건 오늘에서야 알았다. (지능 이슈) 변명이지만 지금까지 진법 자체를 다룰 일이 딱히 없었기도 하고, 아무튼 단순히 Int로 파싱 하는 거라 생각했는데, 아래와 같이 기수를 입력하면 해당 진법으로 해석해 값을 뱉어낸다.Integer.parseInt(Stirng, base)// 2진법Integer.parseInt("1010", 2); // -> 10 반환// 8진법Integer.parseInt("12", 8); // -> 10 반환// 16진법Integer.parseInt("A", 16); // -> 10 ..

[Java] BOJ 13909: 창문 닫기와 힙 메모리 한도

요즘 변수명을 의미 있게 작성하려고 노력하는 중이다. 물론 알고리즘을 풀 때는 편의상 내가 알 수 있을 정도로만 작명한다. 동시에 메서드는 최대한 빼서 구현하는 편인데, 특별한 이유는 없고 메서드를 만드는 것에 익숙해지고 싶어서다.창문 닫기 문제는 9단계에 위치했지만 앞선 단계들보다 쉽다. 그래서 크게 생각할 점 없이 코드를 짤 수 있었다.// https://www.acmicpc.net/problem/13909import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Problem13909 { public static void main(String[] args) throws ..

[Java] MVC 패턴: 로또 애플리케이션 만들기 1편

백엔드 개발자를 희망한다면서 지금까지 잘못된 방법으로 공부하고 있었던 것 같다. 알고리즘이나 조금 건드리고, 인프런 강의를 챙겨 들으며 문법을 배우는 것만으로도 충분히 잘하고 있다고 생각했다.  현실은 JONNA 부족하다. 한 블록에 모든 내용을 담다가, 메서드로 분리하는 것을 적용해 보기까지도 엄청 오랜 기간이 걸렸다. 일부러 메서드로 빼는 연습을 계속하고 있다만 솔직히 지금도 잘 모르겠고 어렵다.  자바의 메모리 영역이라던가 객체 지향이라던가, 아무튼 자세히 파고들면 머리 아픈 개념들이 참 많은데, 지금 당장 필요한 건 디자인 패턴이다. 진작에 스프링까지 공부했으면 조금 더 나았을까 싶기도 한데, 이제 와서 어쩌겠나. 나는 지금까지 패키지 구조조차 명확하게 나누고 시작한 적이 없었다. 그런데 최근 느..

[GitHub] Commit & Push Changes to GitHub via Terminal

IDE가 제공하는 커밋 기능만 사용하던 사람들이 분명히 있을 겁니다. 저도 그랬던 기억이 있어서 이참에 정리해 봤어요. 1일 1포스팅이 지치기도 하고요. 아무튼 오늘은 이걸로 넘어가겠습니다. (⌐■_■)1. Git 설치 확인git --version* Git 버전이 출력되면 설치된 것입니다.* 출력되지 않은 경우, Git을 설치해 주세요. [깃 설치하기]2. 로컬 리포지토리 준비git clone https://github.com/username/repository* 작업할 리포지토리의 URL을 복사한 후, 명령어를 통해 클론합니다.* 이미 준비된 상태라면 4번으로 넘어가 주세요.3. 리포지토리로 이동cd repository* cd는 change directory의 약자이며, 명령어를 통해 경로를 변경합니다..

728x90