본문 바로가기

전체 글

(172)
HTTP를 이해하자(1) 인터넷에서 자료를 전송받으려면 서로 간의 통신이 필요하다. 이러한 통신은 어떻게 이루어지는지 알아보려고 한다. 마침 HTTP 프로토콜을 이해할 필요가 있다고 생각을 하고 있는 와중에 김영한 님의 강의를 들으며 나의 약간의 생각을 양념해서 정리해보았다. 강의는 크게 8개의 섹션으로 분리되어 있으며 하나씩 알아보려고 한다. 인터넷 네트워크 인터넷에서 A와 B가 통신을 하기 위해서는 프로토콜이란 약속이 필요할 것이다. 이러한 약속에는 많은 것들이 있을 텐데, 가장 중요한 것은 어디로 보내야 하냐? 즉, 주소일 것이다. 데이터를 어디로 전송하는 게 가장 중요한 부분이니까 말이다. 그래서 우리는 IP 주소라는 것을 부여하여 통신을 이루어질 수 있게 했다. IP 프로토콜의 역할 지정한 IP 주소에 데이터 전달 패킷..
Java의 개념 원리를 파악하자 1. 자바는 왜 플랫폼 독립적인 언어라고 불릴까? 자바는 JVM 위에서 동작하기 때문이다. 위의 답을 알기 위해 우리는 자바의 실행 원리를 이해할 필요가 있다. 우리는 자바 언어를 활용해서 코딩을 하게 되는데 이런 프로그래밍 언어는 컴퓨터가 이해하지 못한다. 그래서 이러한 프로그래밍 언어를 javac라는 명령어를 통해 컴파일 하는 것이 필요하다. 컴파일을 하게 되면 .class라는 바이트코드가 생성된다. 이러한 .class 파일은 java라는 명령어를 통해 실행할 수 있다. 실행하게 되면 Java virtual Machine(JVM)이 클래스 파일을 읽어 프로그램을 실행하게 된다. 이 때, JVM의 특징은 os에 종속적이라는 것이다. 즉 윈도우의 jvm과 리눅스의 jvm은 다르므로 각각 os에 알맞은 j..
[Leetcode 28/100] Group Anagrams - Medium leetcode.com/problems/group-anagrams/ Group Anagrams - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 방식 Anagrams의 특징인 정렬했을 때 동일한 문자열을 얻는 것을 활용 map의 value 값을 리스트로 설정하여 코드를 간소화할 수 있었다. 주의할 점 이전부터 지속된 문제점이지만 코드를 작성하기 전 명확한 설계가 필요하다. 소스코드
[Leetcode 27/100] Clone Graph - Medium leetcode.com/problems/clone-graph/ Clone Graph - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 방식 해시 맵과 BFS를 활용하여 그래프를 한번만 탐색 주의할 점 1. 문제에서 주어진 요구사항은 deepCopy를 반환하는 것이므로 새로운 노드를 생성하는 것 2. 그래프를 인접리스트로 주어진 상황에서 hashmap을 활용하할 수 있다는 것을 바로 캐치하는 것이 중요 할 것 소스코드
[Leetcode 26/100] Number of Islands - Medium leetcode.com/problems/number-of-islands/ Number of Islands - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 방식 BFS를 활용한 플러드필 주의할 점 배열의 길이를 정사각형이라 생각하지말고 꼼꼼하게 가로 길이, 세로 길이를 체크할 것 다음에는 dfs를 활용해서 풀어보자 소스코드
[Leetcode 25/100] Product of Array Except Self - Medium leetcode.com/problems/product-of-array-except-self/ Product of Array Except Self - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 방식 1. 왼쪽으로 탐색하면서 곱하기 배열을 만듬. 2. 오른쪽으로 탐색하면서 곱하기 배열을 만듬. 3. 왼쪽과 오른쪽의 연산 결과를 곱한다. 주의할 점 첫번째와 마지막 인덱스를 혼동할 수 있으므로 정확하게 노트에 풀어보기. 소스코드
[Leetcode 24/100] Palindromic Substrings - Medium leetcode.com/problems/palindromic-substrings/ Palindromic Substrings - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 방식 브루트 포스 - 모든 생성될 수 있는 문자열에 대한 펠린드롬을 검사 주의할 점 toCharArray() 매서드를 기억하자. 소스코드
[Leetcode 23/100] Palindrome Linked List - Easy leetcode.com/problems/palindrome-linked-list/ Palindrome Linked List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 방식 1. 노드를 끝까지 탐색해서 길이를 구함 2. 펠린드롬 여부 검사 주의할 점 소스코드