리트코드 - 54. Spiral Matrix
리트코드 - 54. Spiral Matrix CS/코딩테스트 2024. 4. 8. 22:53

리트코드 - 54. Spiral Matrix 출처 - https://leetcode.com/problems/spiral-matrix/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 m x n 매트리스가 주어지면 나선형 순서로 모든 요소를 반환하세요. 풀이코드 class Solution { public List spiralOrder(int[][] matrix) { List result = new ArrayList(); int rows = matrix.length; int cols = matrix[0].length; boolean[][] visited = new boolean[rows][cols]; int[] dx = {0, 1, 0, -1..

리트코드 - 36. Valid Sudoku
리트코드 - 36. Valid Sudoku CS/코딩테스트 2024. 4. 5. 23:39

리트코드 - 36. Valid Sudoku 출처 - https://leetcode.com/problems/valid-sudoku/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 9x9 스도쿠 보드가 유효한지 확인하세요. 채워진 셀만 다음 규칙에 따라 유효성을 검증할 필요가 있습니다: 각 행은 반복 없이 숫자 1-9를 포함해야 합니다. 각 열은 반복 없이 숫자 1-9를 포함해야 합니다. 그리드의 아홉 개 3x3 서브-박스 각각은 반복 없이 숫자 1-9를 포함해야 합니다. 참고: 스도쿠 보드(부분적으로 채워짐)는 유효할 수 있지만 반드시 풀 수 있는 것은 아닙니다. 언급된 규칙에 따라 채워진 셀만 유효성을 검증할 필요가 있습니다. 풀이코드 ..

String 클래스 파고들기 - String 생성과 byte 변환시 주의점
String 클래스 파고들기 - String 생성과 byte 변환시 주의점 Language/JAVA 2024. 4. 5. 18:00

String 클래스 String 클래스를 API문서와 클래스를 직접 확인해보면 위와같이 선언되어 있는 것을 볼 수 있습니다. final로 선언되어 있고 Object 를 상속받으며 Serializable, Comparable CharSequence 인터페이스를 구현하고 있는 구현체입니다. final로 선언되어 있으니 String 클래스는 상속이 불가능하고, 자바의 모든 클래스는 Object로 부터 상속받니 이것은 당연한(?)사실입니다. 그렇다면 인터페이스가 궁금해집니다. 먼저, Serializable은 '구현해야 하는 메소드가 하나도 없는 특이한 인터페이스' 입니다. 이 인터페이스로 선언하면, 해당 객체를 다른 서버로 전송 가능하거나 파일로 저장이 가능한 상태가 됩니다. 그리고 Comparable은 이름에..

리트코드 - 68. Text Justification
리트코드 - 68. Text Justification CS/코딩테스트 2024. 3. 25. 23:42

리트코드 - 68. Text Justification 출처 - https://leetcode.com/problems/text-justification/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 문자열 배열 words와 너비 maxWidth가 주어졌을 때, 각 줄이 정확히 maxWidth 문자를 갖도록 텍스트를 포맷하되, 완전히 (왼쪽과 오른쪽으로) 정렬되어야 합니다. 즉, 가능한 한 많은 단어를 각 줄에 넣는 탐욕적 접근 방식을 사용해야 합니다. 필요한 경우 추가 공백 ' '을 삽입하여 각 줄이 정확히 maxWidth 문자를 갖도록 해야 합니다. 단어 사이의 추가 공백은 가능한 한 균등하게 분배되어야 합니다. 한 줄에 단어 사이의 ..

프라임닷 커리어 세션 참여 후기
프라임닷 커리어 세션 참여 후기 성장기록 2024. 3. 21. 16:37

커리어 세션 참여 신입으로 진입하는 개발자로서 바늘 구멍처럼 좁아진 채용시장에서 탈락의 고배를 잔 돌리기 하는 힘든 나날을 보내고 있습니다. 그러던 와중 가뭄에 단 비 같은 서류합격 하나가 나왔지만 결과적으로 그마저도 전산 오류로 취소되어 정신을 잃기 직전이었습니다. 여러곳에서 조언을 구하던 중, 이력서 피드백 세션에서 도움을 많이 얻었던 케일리 님께서 현직자 세션에 흔쾌히 초대해 주셨습니다. 이런 오프라인 미팅이 처음이기도 하고, 메일로 보내주신 내용만으로는 어떤 내용인지 잘 모르겠어서 가벼운 마음으로 들으러 갔습니다. 메인 세션 세션에 참여해주신 멘토님은 두 분으로 두나무 iOS 개발자 장혜준님, H2O Hospitality 개발자 진유진님이었습니다. 현직자를 만날 기회가 드문 취준생으로서 이렇게 좋..

트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 2. 동시 구매시 재고관리 접근
트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 2. 동시 구매시 재고관리 접근 성장기록/개인프로젝트 2024. 3. 11. 09:38

문제 상황 특정 일시에 오픈하는 예약 구매 특성상 동시에 주문처리가 많이 일어남 이 때에 실제 재고보다 더 많은 수량의 주문이 성공적으로 처리됨 문제 원인 주문 시 DB에 짧은 시간 동안 동시 접근이 일어나 여러 트랜잭션에서 동일한 데이터를 수정하려고 할 때 데이터 불일치 문제 발생 비즈니스 로직 public class StockServiceImpl implements StockService { // 기타 메소드 생략 @Override @Transactional public void decreaseStock(Long productId, int count) { log.info("재고 감소 요청 productId: {}, count: {}", productId, count); Stock stock = sto..

image