전체 글 146

[프로그래머스] 위장 (level.2) / 해시/ JAVA

https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 확실히 프로그래머스는 백준이랑 문제 유형이 다른것같다 ! 해시 왜 계속하는데도 감이 안잡히지 .!!!!! 다른 해시 문제들도 더 풀어봐야겠다. 단순하게 경우의 수를 구하는 문제라 생각하지 못하고, dfs로풀어야되나 dp로 풀리나 생각하고 있었다. 결국 다른사람 풀이를 보고나니 너무 허무했다 ㅎㅎㅎㅎㅎㅎㅎㅎ 난 언제쯤 문제를 보자마자 술술 풀리는 고수가 될까!!!?!??!!?! 아래는 제출 코드 map 의 value값에는 key의 갯수를 담았다. 그리고 key의 (value+1) 을 계속 곱하면 된다. key에 매핑되는 value값을 구하기 위해서 ..

Algorithm Study 2022.06.16

[프로그래머스] 전화번호목록(level.2) / 해시 / JAVA

https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 슬퍼. 다시 복습해봐야지 1. HashMap 사용하는 방법 - containsValue보다 containsKey 가 더 빠르고 - HashMap이 HashSet 보다 빠르다. 2. Array 정렬하는법

Algorithm Study 2022.06.15

주문 기능 테스트 (OrderServiceTest)

테스트 코드 작성할때는 3개 에노테이션을 작성해준다. 스프링 부트 환경에서 실행한다는 의미이며, transactional은 데이터 저장후 롤백한다는 의미이다. 1. 상품 주문 테스트 - 상품을 주문하면 상품상태가 ORDER이 되는지 확인 - 주문한 상품의 수가 1개가 맞는지 확인 - 주문 가격 로직이 맞는지 확인 - 주문 수량만큼 재고가 줄어드는지 확인. 2. 상품주문 재고수량 초과 테스트 - 현 재고가 10개이지만, 주문을 20개 했을때, NotEnoughStockException 예외가 발생할것을 예상한다. @Test (expected = NotEnoughStockException.class) - Member 객체와 Item 객체 생성하는 것을 반복하는 작업이 있어, 해당 객체들을 생성하는 코드를 따..

Algorithm Study 2022.06.15

주문 서비스 개발 (OrderService)

주문 서비스 : OrderService 1. 주문 메서드 : order public Long order(Long memberId, Long itemId, int count){ ... } 주문 시 멤버id, 아이템id, 주문수량을 받아 저장한다. memberId를 통해 MemberRepository.findOne으로 member 객체 반환 itemId를 통해 ItemRepository.findOne으로 item 객체 반환 저장할때는 Order과 OrderItem 엔티티에 만들어두었던 createOrder / createOrderItem 메서드를 사용한다. orderItem을 먼저 만든 후, order을 만들어야한다. order 메서드 구현. 1. 엔티티 조회 2. 배송정보 생성 3. 주문 상품 생성 4. ..

Algorithm Study 2022.06.15

1. 인터넷 네트워크 ( IP/ TCP, UDP/ PORT / DNS)

1. IP 인터넷에서 컴퓨터 둘은 어떻게 통신할까? -클라이언트에서 인터넷을 통해 서버로 통신하려 할때, IP주소를 부여하여 통신한다. IP ( Internet Protocol : 인터넷 프로토콜 ) IP의 역할 지정한 IP주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터를 전달 IP 패킷 정보는 : 출발지 IP, 목적지 IP, 기타.. 로 구성되어 있다. 클라이언트 패킷 전달 : 출발 100.100.100.1 / 목적 200.200.200.2/ .. 서버 패킷 전달 : 출발 200.200.200.2 / 목적 100.100.100.1 / .. IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 상대방 컴퓨터가 꺼져있어도. 컴퓨터가 없어도 데이터를 전..

Algorithm Study 2022.06.14

[프로그래머스] 완주하지못한 선수(level.1) / 해시 / JAVA

https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 해싱 분류였음을 알았지만 이렇게 풀어보고 싶었다 ㅎ 정확성 단계에서는 성공했는ㄷㅔ . . .. 효율성 단계에서 실패했다. HashMap 을 사용한 풀이 1. participant 를 Map에 key: 이름과 value: 기존있는 값에 + 1 을 넣어준다. - map.getOrDefault(str,0) + 1 사용 2. completion 에 ..

Algorithm Study 2022.06.13

[VsCode] java import 안되는 에러 발생 시

The import java.util.Collections cannot be resolved Collections 을 쓰려고하는데 자꾸 에러가 났다 .. import java.util을 써봐도 계속 오류 오류 오류 java workspace를 다시 삭제하고 vscode를 재실행 시켜주면 된다고 찾았는데. 도대체 이놈의 맥은 workspace가 어딨는지 찾기도 힘듬.. 찾아보니 F1 눌러서 java clean 쳐주면 바로 해당 기능이 뜬다! 첫번째꺼 누르면 자동으로 삭제되고, vscode도 알아서 재실행된다! 그럼 이제 import 됨!!!! 유후 참고 블로그. https://goodteacher.tistory.com/478 [vscode] 자바 컴파일이 안될 때 vscode 사용 중 클래스를 로드할 수 ..

JAVA 2022.06.12

[프로그래머스] 가장 큰 수 ( level.2) / JAVA / 정렬(Comparator)

https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 완탐으로 풀었더니, 메모리 초과 ! Comparable, Comparator 인터페이스를 사용해서 비교해서 푸는 문제였다. 지난 번 공부했다고 생각했는데 구현하려하니까 하나도모르겠음. 복습하고 제대로 머리에 새길겸 보완해서 다시 정리해보았다. https://hyun-1200.tistory.com/6..

Algorithm Study 2022.06.10

인터페이스(interface)

📌 인터페이스 (interface) : 인터페이스는 일종의 추상클래스이다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외 다른 요소는 허용하지 않는다. 추상클래스를 부분적으로만 완성된 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본설계도'라 할 수 있다. 인터페이스 작성방법 interface 인터페이스이름{ public static final 타입 상수이름 = 값 ; public abstract 메서드이름 (매개변수목록); } - 접근제어자로 public 또는 default를 사용할 수 있다. 인터페이스 제약사항 더보기 1. 모든 멤버변수는 public static final이어야 하며, 생략할 수 있다. 2. 모든 메서드는 public ab..