본문 바로가기

전체 글59

우테코 프리코스[BE 7기] 1주차 회고 1주차 미션 : 문자열 덧셈 계산기 기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다. 이 부분이 나한테는 엄청 애매했다... 우선 요구사항에 대해 살펴보며 기능목록을 작성했다. 구분자와 양수로 구성된 문자열양수를 맨 처음 봤을 때 생각난 건, 아 이건 int로 처리하면 오류난다. 양수니까 int 범위를 넘은 값이 들어올 수도 있으니까 long으로 입력값과 결과값을 처리하자는 생각을 우선적으로 했다.그렇게 구현을 마치고 테스트 코드를 작성하던 중, 양수가 정확하게 뭐지? 내가 아는 '양의 정수'가 양수가 맞나? 의심이 들었고, 사전적 정의를 찾아봤다. 양수: 양의 부호(+)를 붙인 수로 0보다 큰 수다 이 의미면 소수도 포함되는거 아닌가...? 나아가 무리수도 양수일텐데 무리수 계산까지 구.. 2024. 12. 27.
Java 컬렉션 정리 for 코딩테스트 - Queue 글쓰기에 앞서 해당 포스팅은 기본적인 Queue의 작동 원리에 대해 아주 짧게만 다룬다. Queue, Stack 과 같은 개념은 알고 있다는 가정하에 포스팅을 진행한다.1. Queue란?FIFO (First In First Out) 의 구조를 가진 자료구조.  선입선출을 생각하자. 그림을 통해 쉽게 이해해보자.배열 안에 값이 저장되는 모습이다.  위의 상태에서 1을 삭제하고, 추가로 5,6을 삽입하면 어떻게 될까?아래와 같은 모습이 된다. 마찬가지로 2, 3, 4 를 지우고, 7, 8, 9 를 삽입한다면 해당 배열의 앞 부분의 메모리가 낭비가 된다. 이는 Queue의 명확한 한계점이다. 자바에서는 해당 문제를 개선한 ArrayDeque, LinkedList를 구현체로 사용한다.[ Queue의 구조 ] 이.. 2024. 12. 25.
Java 컬렉션 정리 for 코딩테스트 - Map 1. Map이란?key-value의 쌍을 가지는 자료구조순서를 보장하지 않음키는 중복될 수 없지만, 값은 중복될 수 있음[ Map의 구조 ] 친숙한 녀석들이다. 이 그림을 어디선가 본 것 같은데... Set과 동일한 구조를 가지고 있다. 단지 Set은 HashSet, Map은 HashMap이다. Set을 이해했다면, Map 이해는 어렵지 않을 것이다. 단지, Set 옆에 value가 추가되었을 뿐이다.그렇기에 Map에 대한 자세한 설명을 하는 대신, Map이 어떤 메서드를 제공해주고, 어떻게 사용해야 되는지를이번 포스팅으로 알아보자.2. Map이 제공해주는 메서드 Map은 key, value값으로 되어있다. 코드를 통해 살펴보자.Map studentMap = new HashMap(); key = Stri.. 2024. 12. 23.
Java 컬렉션 정리 for 코딩테스트 - Set 1. Set이란?중복을 허용하지 않고, 순서를 보장하지 않는 자료구조 중복을 허용하지 않고, 순서를 보장하지 않는다면 어떤 장점이 있는걸까?  가장 많이 쓰이는 곳은 특정 요소가 집합에 있는지를 검증하는데 쓰인다.ex) A = [1, 3, 5] / A는 4를 포함하고 있나요?이런 문제에서 Set을 사용한다면, 굉장히 효율적으로 문제를 해결할 수 있다. [ Set의 구조 ] 뭐가 참 많다.SortedSet, NavigableSet은 인터페이스이기 때문에 해당 인터페이스를 구현한 TreeSet 및 HashSet, LinkedHashSet 총 3개의 Set에 대해 알아보도록 하자.2. HashSetSet은 방금 글 읽고 알겠는데, Hash는 뭔지 모르겠어요. 당연한거다. 해시를 설명한 적이 없다.HashSet.. 2024. 12. 22.
Java 컬렉션 정리 for 코딩테스트 - List 1. Collection이란?[ 배열과 컬렉션, 무엇이 다른가? ] 배열은 정적이다. 그에 비해 컬렉션은 동적이다. 이 말이 어려울 수 있기에 코드를 통해 쉽게 이해해보자.우리가 배열을 생성할 때 어떻게 코드를 작성할까? 자바의 배열을 알고 있는 사람은 아래와 같이 배열을 생성할 것이다.int[] arr = new int[5]; arr의 배열을 만들기 위해서는, 배열을 만드는 시점에 미리 5칸의 배열을 생성해야 한다.즉, 배열이 생성되는 시점에 정적으로 배열 크기를 지정해줘야 한다는 단점이 존재한다는 것이다. 그렇다면 컬렉션은 어떻게 동적으로 배열을 생성할까? 이를 알아보기 위해 Collection을 상속받는 기본적인List 자료구조를 직접 만들어보자. 이해가 목적이기에, 간단하게만 작성해보았다. pub.. 2024. 12. 21.