21년 2월 1일
한 일
-
자바 소켓통신으로 Http 요청을 구현해보았고 성공적인 Response를 받을 수 있었다.
-
URL 클래스를 직접 구현하여, http://www.naver.com:80/test?query=test 와 같은 형식의 url을
프로토콜, 도메인 이름, uri, 파라미터등으로 구분하도록 하였다.
-
URL클래스 내부적으로 java.net의 InetAddress 클래스를 이용하여 DNS서버에서 IP주소를 알아낸다.
-
직접 구현한 URL 클래스를 이용하여 http 헤더를 붙여서 소켓통신으로 http request를 보내고 response를 받아온다.(내일 예정)
-
-
TCP/IP 4계층 모델에 대하여 공부 및 포스팅 하였다. (이번 내용은 정보를 서술할 뿐이라 다른 글을 거의 복사했다.)
-
프로그래머스 징검다리건너기 문제를 풀었다.
-
징검다리건너기
-
각 돌은 건널 수 있는 숫자가 정해져있고(일정 숫자 이상 밟으면 부서진다고 상상), 최대로 점프할 수 있는 거리는 k로 제한된다.
-
내 풀이:
-
한번에 뛸 수 있는 거리는 k이므로, stones를 전체 순회하며 k 길이만큼의 구간이 사용 가능한 횟수를 구한다.
ex) 1~k 구간이 버틸 수 있는 사람 수는 1~k번째 돌에 적힌 숫자 중 최대값이며, 그 다음은 2~k+1번째 구간의 값을 구한다.
- 이렇게 구한 값중 최소값이 징검다리를 건널 수 있는 최대 인원이다.(k개의 구간이 무너지는 순간 아무도 건널 수 없으므로)
- 결국 구간 max값을 stones길이만큼 구해야 하는데, 효율성 통과를 위해 구간값을 segment tree로 구했다.
-
-
다른 사람 풀이:
- 징검다리 건널 수 있는 최대 인원은, 돌에 적힌 숫자 중 최대값과 최소값의 사이이다.
- binary search로 answer를 바꿔가며, 정답을 찾는다.
-
-
잘못한 것
- 네트워크는 대학교때도 꺼려했던 과목이라 기본이 많이 부족하다.
- 기본이 부족한데도 조급함을 느끼며 빨리빨리 하려고 했다.
잘한 것
- 다시 일상으로 복귀하고 있다.
느낌
- 조바심을 느껴 쓱 훑고 빨리 구현하려고 하니, 아무것도 하지 못한 느낌이다.
- 기본이 부족하면 차근차근 공부해야겠다. 시간은 많다.
할 일
- 코드스쿼드 미션하기
- 네트워크 공부하기
- 프로그래머스 문제 풀기