본문 바로가기

TechKnowledge18

OSI 3계층의 기능과 역할(IP 통신) 3계층은 다른 네트워크 대역을 연결하는 역할을한다-LAN 과 LAN 을 이어주는 역할(스위치같은 3계층 장비가 필요하다) 원거리 통신을 위해서는 MAC 주소 뿐만아니라 ip 주소가 필요하다또한 서브넷 마스크, 게이트웨이가 같이 필요하다.3계층 프로토콜 종류ARP 프로토콜IPv4 프로토콜ICMP 프로토콜IP 주소클래스 기준으로 ip를 나눠서 2025. 5. 14.
근거리 네트워크 통신 osi 2계층에서 하는일--같은 네트워크 상에서 송신장비와 수신장비에 대한 데이터를 전달하는 역할- 추가적으로 오류제어, 흐름제어를 수행함 2계층은 같은 네트워크만 가능하기 떄문에다른네트워크 대역 통신을 위해서는 3계층이 필요하다 2계층에서 사용하는 주소-Mac 주소(물리주소)16진수로 구성되어있으며 12자리앞6자리 oui 제조회사 식별 id뒤 6자리 제조사 식별번호2계층의 프로토콜 이더넷 프로토콜의 구조목적지주소- 받는주소 6바이트 출발지주소- 보내는 주소 6바이트 이더넷타입- 데이터 타입에 따라 값이 정해짐데이터-데이터 파트 2025. 5. 8.
알고리즘 Contains 시간복잡도에 대한 정보 HashMap/ArrayList 알고리즘중 값을 배열에 저장하는 로직에서 값의 존재여부를 조회할때 ArrayList 의 contain 를 사용하게 되면 collection 매서드의 동작에서 ArrayList 의 길이 n 만큼 O(n) 만큼 순회하게된다. 이런 케이스는 많은 시간복잡도를 요구한다. HashMap으로 치환이가능한 알고리즘이라면 HashMap의 키에 값을 넣고 키를 가지고있는지 조회하면 HashMap의 containkey 타입으로 확인을 하면 key 값의 메모리 주소를 바로 찾기 때문에 O(1) 단한번의 연산으로 끝낼수있다 import java.util.ArrayList; public class Scartch { public int solution(int[] A) { ArrayListarrayList = new ArrayLi.. 2023. 6. 29.
프로그래머스 lv2 괄호회전하기 자바(Java) Stack활용/ 올바른 괄호문제 기본적으로 괄호문제의 경우 스택을 사용하여 풀이를 진행합니다. 괄호문제에서는 스택은 선언, push, pop 만 알고있어도 쉽게 풀이가 가능합니다. 여기서 스택의 특징인 push 로 들어간 순서에서 가장 마지막으로 들어간 순서 부터 꺼내는 자료구조입니다. 보통괄호 문제는 ( 일때 push 를 하고 , ) 가 나올때 pop 을 해서 Stack.isEmpty()를통해 스택이 비어있게 되면 올바른 괄호가 되는것입니다. (()) 식의 중첩이나 ()() 개별 괄호를 검증할수있습니다. 이런식으로 Stack.isEmpty() 메서드를 통해 stack 이 남아있거나. ex) ()()( , ((()) 2023. 2. 17.
프로그래머스 lv2 멀리뛰기 자바(Java) 동적계획법/ 피보나치수열 필자는 위의 유형과 같은 문제를 풀다 해결법이 안나오면 스케치를 해봅니다. 그러다 우연히 발견한것은 N에 대한 정답의 값이 n-1과 n-2 의 합과 같은 패턴 이것은 피보나치 수열입니다. 대부분의 알고리즘 문제에서 피보나치수열은 시간복잡도를 많이 소요하기 때문에 통과하기 어렵습니다. 자세한 설명과 이유는 https://eccsck.tistory.com/51에 있습니다. 역시나, 결과는 시간 초과입니다. 이번에는 배열을 통해 이전값들을 저장하고 다시 불러오는 동적 계획법을 이용해서 풀이해보겠습니다. n의 크기만큼 값을 구하여 각각의 값을 저장하게 됩니다. 그렇게 되면 이전의 값을 구하기 위해 다시 계산하지 않기때문에 시간복잡도를 줄일수있습니다 확실히 시간복잡도가 개선 되어서 통과하게 되었습니다 public.. 2023. 1. 31.
백준 2775: 부녀회장이 될테야 Java(자바) 동적계획법을 이용한 풀이 위와 같은 문제를 접근할때는 그림이나 표를 먼저 그려보며 접근하는 편입니다. 표를 보면 알수있듯이 각 집의 거주인원= 아래층같은호+같은층이전호 라는 패턴을 알수있습니다. 층과 호를 기준으로 알고리즘을 짰을때 사람수(x층y호) = 사람수(x-1층y호)+사람수(x층y-1호)호 라는 식으로 접근이 가능합니다!. 일반적으로 위방식같은 메서드의 알고리즘은 재귀용법으로 접근하게됩니다. 물론 이렇게 접근해도 정답은 나오지만 .... 피보나치 수열 알고리즘을 예시로 위메서드의 특정 값을 구할때 이미 구한 값을 계속 구하게 되는 문제가 있습니다 시간복잡도를 증가 시키기때문에 효율적인 알고리즘이라고 생각하지않습니다.... 그리하여 배열을 메모리를 이용한 동적 계획법으로 코드를 다시 짜보았습니다 사람수[x층][y호] = 사.. 2023. 1. 10.