객체지향과 인지 능력 객체 = 인간이 인지하고 구별할 수 있는 물리적인 또는 개념적인 경계를 지닌 어떤 것 객체지향 패러다임의 목적 = 현실 세계 모방 ❌ = 현실 세계를 기반으로 새로운 세계를 창조하는 것! 소프트웨어 세계에서 살아가는 객체는 현실 세계에 존재하
📌객체지향 패러다임의 핵심 == 자율적인 객체들의 협력객체지향 소프트웨어 = 실세계의 투영객체 = 현실 세계에 존재하는 사물에 대한 추상화\-> 이 개념은 철학적 개념에 적합하나, 유연하고 실용적인 관점에서 객체지향 분석, 설계를 설명하기 부적합객체지향의 목표 = 실
java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있습니다.프로그램 종료, 키보드로부터 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로퍼티 읽기, 환경 변수 읽기등의 일부 기능을 사용할 수 있습니다.
결론부터 살펴보자. ThreadLocalRandom을 써야 하는 이유 java.util.Random 멀티 쓰레드 환경에서 하나의 인스턴스에서도 전역적으로 의사 난수(pseudo random)를 반환한다. 따라서 같은 시간에 동시 요청이 들어올 경우 경합 상태에서 성능
Java11 을 사용하고 있었는데, Java17을 사용해야 할 일이 생겼다.다음에 다시 11로 또 변경해야 할 것 같기도 하고, 나처럼 버전을 변경하려고 하시는 분들이 어려움을 겪지 않았으면 하는 마음에 작성한다.변경할 Java17은 이미 설치한 상황이며, IDE는 I
데이터를 주고받을 때, Json 형식을 많이 사용한다.Java에서 org.json 라이브러리를 이용하여 JSON 데이터를 다룰 수 있다.이 라이브러리에서 제공하는 JSONObject, JSONArray 클래스는 JSON 데이터를 갖고 있고, JSON 형식의 문자열로 출
데이터 자료구조 (데이터 컬렉션)중 하나로, 특정한 값들을 저장하는 추상 자료형값들의 순서가 존재하지 않고, 중복되지 않음\-> 유한 집합을 컴퓨터 구현한 것다른 모음(Collection) 타입에서는 특정 원소를 검색하는 것이 주 업무이고, Set은 대상 원소가 집합에
Jackson을 알려면, 우선 Json이 무엇인지 알아야한다.(여기서는 Json이 주 내용이 아니므로 기본적인 내용만 다루겠다)Spring 개발을 하다보면 데이터를 전달하고싶을 때가 있다. 이럴 때에는 보통 데이터 구조를 표현하는 방식인 XML 또는 JSON 형태로 많
💡 Hash 사용!해시를 사용하긴하는데, 모든 조합의 경우의 수를 어떻게 구해야할까? 고민했다.조합 알고리즘을 사용하려했는데, 시간복잡도가 '2^30\*30'이라 이건 아니다싶었다.결국 다른 사람이 어떻게 풀었는지 힌트를 살짝 얻었다.특별한 알고리즘이 있는건 아니었고
partici.get(0);이 undefined로 나올때도 있는데, 해시 사이즈를 보니 1이긴하네?아 get()은 Key값으로 찾는거구나..나는 인덱스를 넣고있었다.values()로 value만 뽑아서, Iterator를 사용했다.원소는 무조건 하나밖에 없을것이므로,
🙋 Hash 사용! 왜 Hash일까? 중복을 허용하지 않는 자료구조이기때문!이 문제가 해시로 분류되는것은 알고있었지만, HashMap을 쓴 후 어떻게할까를 고민했다..우선 중복을 허용하지 않는 키에 포켓몬 번호를 넣고, 조합 알고리즘을 사용해 경우의수를 보면서 종류의
Set 인터페이스에서 지원하는 구현 클래스객체 그 자체를 저장한다.순서가 일정하게 유지되지 않는다null 요소도 허용한다내부적으로 HashMap을 사용한다.중복을 허용하지 않는다.중복을 허용하지 않는게 가장 큰 특징이라 할 수 있다.HashSet은 객체를 저장하기 전에
처음에 이 문제를 어떻게 풀어야할지 감이 안왔다.phone_book에서 2개의 원소(a,b라고 가정)를 고르는 2중 for문에, 한 번 더 문자열(b)의 길이만큼 반복하면서 잘라낸 문자열이 가장 바깥 문자열과 일치하는지 검사하는 코드를 슈도코드로 짜봤는데,, 이렇게하면
🙋 BFS 이용!레벨:2BFS 문제를 오랜만에 풀어서 그런지, BFS인게 감은 오는데 어떻게 풀어야할지 모르겠더라.다른사람들의 풀이(코드말고)를 보고 짰다.내가 처음에 기억 못하고 놓쳐서 헤맸던 부분은 이거다.보통 사방으로 이동하면서 해당 값을 넣는데, 여기서는 어떤
구현으로 풀 듯이 하려다가, 이게 DFS/BFS 유형인걸 알고 풀었기때문에 어떻게 사용될지를 생각해봤다.금방 DFS 라는것은 알 수 있었으나, 재귀적으로 어떻게 호출해야할지 감이 안왔다.깊이랑 합까지 파라미터로 넘긴다! (이 생각 전혀 못 함)그리고 다른 풀이를 찾아봤
테케 하나 돌려보고 맞았길래, 그냥 제출했는데 2,3번 테케에서 다른답이 나왔다.visited\[head.x]\[head.y] = true; 에서 '행'이 y, '열'이 x이어야하는데, 그 반대로 적어뒀다.visited\[head.y]\[head.x] = true;이것
테스트 케이스는 맞았는데, 틀렸습니다를 받았다.를 넣으니, ]만 출력됐다.즉 isNone()이 true로 동작해서 error를 출력했다는말이다.근데 문제를 다시 살펴보니,, 조건을 헷갈렸다.값이 비었을 때 (isNone == ture) error를 출력하는게 아니라,
🙋🏻♀️ 우선순위 큐 사용! 골드4라서 조금 어렵겠다 생각했는데, 아니다.생각해보면, 파일은 무조건 2개씩 합쳐지기때문에 어떻게 합치든 횟수는 고정이다! 동일한 횟수에 최소비용을 구하려면, 각 횟수마다 합이 최소가 되도록하면된다.따라서 우선순위 큐를 이용한다! 테
n개의 숫자 중에서 r개의 수를 순서 없이 뽑는 경우예를 들어 1, 2, 3 이란 숫자 배열에서 2개의 수를 순서 없이 뽑으면이다.nCr =n−1Cr−1+n−1Cr하나의 원소를 이미 선택하고, 나머지 원소들에서 남은 것을 선택하는 경우의 수 + 하나의 원소를 선택하지
한 번에 맞았지만, 테스트케이스에서 결과가 달라서 조금 헤매기도했고, 처음에는 Queue를 이용해서 풀려고했는데 트럭이 얼마나 이동했는지를 큐 안에서 어떻게 표현할까를 고민하다가 배열 2개 사용하는 방식으로 바꾸었다.그래서 다른 풀이를 찾아보고 공부한다. Queue를