전체 글 573

220808-220814

0808(월) 백준 문제 풀기 오브젝트(~70p) 0809(화) 백준 문제 풀기 오브젝트(~106p) Collection 포스팅 0810(수) 프로그래머스 모의고사 풀기 스프링 인 액션(~47p) 다음주면 퇴사한 지 거의 1년이 다 되가는 시점에 최종합격 연락을 받게 됐다! 이것저것 많은 경험을 해볼 수 있을 곳인것 같아서 기대가 된다. 이번주는 읽고 싶었던 책들 읽으면서 좀 쉬었고 다음주 수요일부터 첫 출근인데 이제 TIL 보다는 업무에서 겪었던 문제나 기술같은 것들을 정리하는 식으로 블로그를 운영해보면 어떨까싶어서 그런식으로 해보려 한다! 좀 적응하면 다시 서적 읽으면서 자기개발하자!

TIL/2022 2022.08.14

자바의 Collection Framework - 동기화, 병렬 처리

자바의 컬렉션 프레임워크의 대부분의 클래스들은 싱글 스레드 환경에서 사용될 수 있도록 설계 되었습니다. 그렇기 때문에 여러 스레드가 동시에 컬렉션에 접근한다면 의도하지 않게 요소가 변경될 수 있습니다. Synchronized Collection Vector와 Hashtable은 동기화된(synchronized) 메서드로 구성되어 있기 때문에 멀티 스레드 환경에서 안전하게 요소를 처리할 수 있지만 ArrayList, HashSet, HashMap은 동기화된 메서드로 구성되어 있지 않아 멀티 스레드 환경에서 안전하지 않습니다. 경우에 따라서는 ArrayList, HashSet, HashMap을 싱글 스레드 환경에서 사용하다가 멀티 스레드 환경으로 전달할 필요도 있을 것입니다. 이런 경우를 대비해서 컬렉션 프..

Java 2022.08.09

220801-220807

0801(월) 면접 보기 + 수요일 면접 준비 0802(화) 백준 문제 풀기 면접 준비 0803(수) NHN 코딩테스트 + 기술 면접 보기 백준 문제 풀기 면접 질문 정리 0804-0805(목,금) 코테 준비 0806(토) 현대오토에버, 토스 코딩테스트 보기 지원서 작성 수요일에 NHN 면접은 후기대로 진행된 면접이었다. 코딩테스트는 없었고 과제테스트였는데 얼굴이랑 화면을 동시에 찍어야하고 인터넷 검색이 안돼서 조금은 부담스러웠지만 그래도 나쁘지 않게 구현한 것 같다. pre-test는 그다지 어려운 부분들은 없었지만 답변을 못한 부분이 좀 있었다. 시험이나 테스트에 대해서 좀 더 나은 답을 찾아가는 식으로 진행했는데 좋은 경험이었다. 토요일에는 오전에 현대오토에버, 토스 코딩테스트를 봤는데, 현대오토에..

TIL/2022 2022.08.07

220725-220731

0725 운영체제 강의 보기 백준 문제 풀기 0726 운영체제 강의 보기 백준 문제 풀기 0727 백준 문제 풀기 면접 준비 0728 백준 문제 풀기 프로그래머스 모의고사 보기(1.해시 2.투포인터 3.자료구조 4.DFS+구현) 면접 준비 0730 백준 문제 풀기 프로그래머스 모의고사 보기(1.DFS 2.해쉬+투포인터 3.BFS) 면접 준비 0731 면접 준비 다음주 코테보기 전에 프로그래머스 모의고사를 봤는데 모의고사긴 하지만 2번 모두 올솔해서 기분좋았다. 하다보면 늘긴하는 것 같다! 다음주에 면접, 코테 두 번씩 잡혀있는데 잘 보자!!

TIL/2022 2022.07.31

빙산

📍 문제 설명 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 💡 접근 bfs 문제였는데 큐가 2가지 필요했다. 1. 빙산을 한번에 녹이기 위한 큐 2. 두 덩어리 이상으로 분리되어있는지 확인하기 위한 큐 👩‍💻 코드 import java.io.*; import java.util.*; public class Main { static int[] arr, dx = {-1, 1, 0, 0}, dy = {0, 0, -1, 1}; static in..

Algorithm/baekjoon 2022.07.27

직사각형 탈출

📍 문제 설명 https://www.acmicpc.net/status?user_id=chqdlstjd2&problem_id=16973&from_mine=1 채점 현황 www.acmicpc.net 💡 접근 전형적인 BFS 문제 다른 부분은 좌표 하나만 확인하는 것이 아닌 직사각형으로 확인해야 했던 문제 직사각형의 첫 시작 좌표들로 방문여부를 체크 👩‍💻 코드 import java.io.*; import java.util.*; public class Main { static int[] arr, dx = {-1,1,0,0}, dy = {0,0,-1,1}; static int[][] board; static boolean[][] visited; static int n, m, k, t, num, cnt, seco..

Algorithm/baekjoon 2022.07.27

움직이는 미로 탈출

📍 문제 설명 https://www.acmicpc.net/problem/16954 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 💡 접근 q사이즈만큼 루프를 돌린다음 벽을 내려한다! 해당 조건이 없으면 한 칸을 이동할 때 마다 벽이 내려가게 됨 방문조건을 고려하려면 q사이즈 루프돌때마다 새로 방문 배열을 만들어줘야 했는데 딱히 고려안해도 메모리, 시간초과가 나지는 않았다. 👩‍💻 코드 import java.io.*; import java.util.*; public class Main { static..

Algorithm/baekjoon 2022.07.27

말이 되고픈 원숭이

📍 문제 설명 https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 💡 접근 k = 1일 때 처음부터 움직일 수도 있지만 인접한 방향으로만 이동하다가 중간에 말처럼 이동할 수도 있기 때문에 그 부분 때문에 3차원 배열을 사용했음 며칠전 문제에서 해당하는 위치를 바로 리턴안해줬더니 시간초과가 뜨는 문제가 있어서 이번엔 지점 찾으면 바로 리턴해주는 식으로 접근했는데, 이번 문제에서는 100%에서 틀렸습니다.가 떴다. 이 문제에서는 2갈래..

Algorithm/baekjoon 2022.07.27

숫자고르기

📍 문제 설명 https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 💡 접근 범위가 그렇게 크지 않아서 조합으로 풀 수 있겠다 싶었는데, 시간초과가 났다. 1번 ~ n번까지 각 숫자에 대해서 배열에 해당하는 값(인덱스)을 찾아야한다. idx번의 값과 배열의 idx 인덱스와의 값이 매칭되면 리스트에 넣어주면 된다. 👩‍💻 코드 import java.io.*; import java.util.*; public class Main { stati..

Algorithm/baekjoon 2022.07.26

샘터

📍 문제 설명 https://www.acmicpc.net/problem/18513 18513번: 샘터 첫째 줄에 자연수 N과 K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N, K ≤ 100,000) 둘째 줄에 N개의 샘터의 위치가 공백을 기준으로 구분되어 정수 형태로 주어진다. (-100,000,000 ≤ 샘터의 위치 ≤ www.acmicpc.net 💡 접근 배열이 아닌 Set을 이용해서 좌표 방문 여부를 체크해줬는데 계속 메모리 초과가 났었다. 위의 문제는 집을 모두 지었을 때의 체크를 루프 바깥에서 해줬기 때문이다. 그리고 바깥에서 체크를 해주면 루프 안에서 집이 하나 더 만들어질 수도 있기 때문에 오답이다. 타 블로그를 참고해서 새롭게 알게된 문법이 있다. out:while 문법을 쓰고 안에서..

Algorithm/baekjoon 2022.07.26