분류 전체보기 221

프로그래머스 - 배열 회전시키기

나의 풀이. 처음에 문제 보고 배열이나 ArrayList만들어서 하나씩 할당해줘야 하다가 양 쪽 끝에서 데이터의 추가 / 삭제 등이 필요할 때 유용한 데크 생각이 났다. 데크는 양쪽에서 삽입과 삭제가 모두 가능한 자료구조로 Doubly-ended Queue 이며 Stack과 Queue를 합친 형태로 이해하면 된다. 그래서 right면 맨 끝의 요소를 빼서 제일 앞에 넣어주고 left면 첫번째 요소를 빼서 맨 끝으로 넣어주면 풀 수 있다. import java.util.ArrayDeque; import java.util.Deque; class Solution { public int[] solution(int[] numbers, String direction) { int[] answer = new int[n..

CODING TEST 2023.05.22

프로그래머스 - 한 번만 등장한 문자

나의 풀이. 이전에 해시맵 공부하면서 풀어본 문제인데 정리겸 다시 한번 작성하려 한다. 해당 문제를 3가지 방법으로 풀어보고 해당 방법에 따른 실행결과도 한 번 비교해보자. 1. 해시맵/해시테이블로 풀기 2. 계수 정렬 방법으로 풀기 3. 중복값이 없고 순서가 있는 TreeSet으로 풀기 1. 해시맵/해시테이블 getOrDefault 메서드를 사용해 문자열을 하나씩 분리하고 key 값으로 매핑하여 value값을 증가시켜준다. 그리고 keySet() 을 돌려 해당 key의 value가 1이면 StringBuilder에 더해주고 이 StringBuilder 를 문자열로 만들어서 다시 배열로 만들어서 sort 해주고 다시 문자열로 반환하기 import java.util.ArrayList; import java..

CODING TEST 2023.05.22

230521 STUDY LOG.

목표. 비선형 자료구조 - 트라이, 연습문제풀이 듣기 프로그래머스 1 문제 람다식 정리 미니과제 수정하기 진행 및 현황. - 비선형 자료구조 강의 수강 비선형 자료구조 - 트라이 TRUE 비선형 자료구조 - 트라이 문제 풀이 TRUE 비선형 자료구조 - 연습 문제 풀이 TRUE - 프로그래머스 Lv2. 정답률 높은 순으로 풀기 프로그래머스 - JadenCase 문자열 만들기 - 람다식 정리 함수형 프로그래밍과 람다식(Lambda expression) - 미니과제 피드백 반영 및 다시 해보기 HTML 삽입 미리보기할 수 없는 소스 오늘 후기. 비선형 자료구조 안녕.. 너무 어렵네 다시 또 봐야지 자바 문법도 꾸준히 복습해야지 이번주도 끝이났다. 열품타 스터디 덕에 공부할 때 휴대폰을 보는 시간이 현저히 준..

STUDY LOG 2023.05.21

함수형 프로그래밍과 람다식(Lambda expression)

시작하며. 코테 관련 강의 수강 중 PriortyQueue 로 푸는 경우가 많이 나오는데 안그래도 이해가 안되는데.. 람다식부터 헤매니 머리 통통.. 두통통.. 그래서 정리겸 람다식이 무엇인지 정리해보려 한다. 함수형 프로그래밍과 람다식. 자바는 객체를 기반으로 프로그램을 구현 만약 어떤 기능이 필요하다면 클래스 만들고 ➡️ 클래스에 메서드를 만들고 ➡️ 메서드 호출 그렇다면 어떤 기능을 사용할 때마다 클래스를 만들고 메서드를 추가해야만 할까? 이를 해소하기 위해 자바 8부터 함수형 프로그래밍을 지원하고 있다. 자바에서 제공하는 함수형 프로그래밍 방식을 람다식(Lambda expression)이라 하며 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식이다. 순수함수(pure function)를 구현하고..

BACKEND/JAVA 2023.05.21

230520 STUDY LOG.

목표. 비선형자료구조 - 우선순위 큐 선형자료구조 정리 - 해시테이블 프로그래머스 Lv2 문제 풀기 프리 코딩테스트 1-5 완료하기 진행 및 완료. - 비선형자료구조 - 우선순위 큐 강의 듣기 완료 비선형 자료구조 - 우선순위 큐 TRUE 비선형 자료구조 - 우선순위 큐 문제 풀이 TRUE - 선형자료구조 정리 - 해시테이블 선형자료구조 - 해시, 해시테이블, 해시맵, 해시표 - 프로그래머스 Lv2 정답률 높은순으로 풀기 프로그래머스 - 최댓값과 최솟값 - 프리 코딩테스트 1-5 완료하기 오늘 후기. 코딩 테스트 정말 풀어본것 같은데 자꾸 테스트케이스에서 실패 나오니까 멘탈 바사삭 테스트 케이스를 알 수 없어 하나가 자꾸 안되니 너무 초조해 지더라 항상 예외에 대해서 제한 조건에 대해서 주의하고 문제를 ..

STUDY LOG 2023.05.20

프로그래머스 - 최댓값과 최솟값

나의 풀이. 배열과 ArrayList 둘다 사용해 풀어봤는데 큰 차이가 없었다. 반복문 돌리는건 똑같아서 그런가 문자열 s를 for each 문을 통해 만들어둔 ArrayList 에 Integer.parseInt 메서드로 항변환해 넣기 ArrayList -> sort -> 0 번째 값과 마지막 값을 answer에 할당 import java.util.ArrayList; import java.util.Collections; class Solution { public String solution(String s) { String answer = ""; ArrayList list = new ArrayList(); for (String nStr : s.split(" ") ) { list.add(Integer.pa..

CODING TEST 2023.05.20

선형자료구조 - 해시, 해시테이블, 해시맵, 해시표

해시 테이블(Hash Table) = 해시맵, 해시표 해시함수를 사용하여 키를 해시 값으로 매핑하고, 이 해시 값을 색인(index)삼아 데이터의 값(Value)를 키(key)와 함께 저장하는 자료구조를 해시 테이블 이라고 함 이 때 데이터가 저장되는 곳을 버킷(bucket) 또는 슬롯(slot) 이라고 함 해시테이블(= 해시맵, 해시표)은 키를 통해 해당 데이터에 빠르게 접근이 가능함. 해시 충돌 해시 테이블에 같은 공간에 서로 다른 값을 저장하려는 경우 -> 서로 다른 키의 해시 함수를 통한 해시 값이 동일한 경우 해시 충돌이 일어나 원하는 결과를 얻을 수 없음 해시 충돌을 해결하는 방법에는 선형탐사법, 제곱탐사법, 이중해싱, 분리연결법 등 방법으로 해결할 수 있음 이와 관련된 내용은 추후에 정리할 ..

230519 STUDY LOG.

오늘 목표. 비션형 자료구조 - 힙 수강 선형 자료구조 - 데크 복습 및 정리 프로그래머스 Lv1 문제 풀기 프리 코딩테스트 응시 라이브 세션 참여 진행 및 완료. - 비션형 자료구조 - 힙 수강 비선형 자료구조 - 힙 TRUE 비선형 자료구조 - 힙 문제 풀이 TRUE - 선형 자료구조 - 데크 복습 및 정리 선형자료구조 - 데크/덱(Deque) - 프로그래머스 문제 풀기 프로그래머스 - x만큼 간격이 있는 n개의 숫자 - 라이브 세션 참여 기억에 남는건. 여러분 코테 어려워요 증말 어려워요 🦊 - 프리 코딩테스트 응시 오늘 후기. 오늘 코테는 이렇게 풀어도 되는건가 하는 문제였던거 같다. 로직을 구현해야 하는건지 그냥 메서드로 해도 되는건지 고민하다 언넝 제출하고 다른 문제 더 풀자 해서 일단 제출했..

STUDY LOG 2023.05.19