전체 글 573

[Network] OSI 모델의 7개 계층 알아보기

OSI 모델은 개방형 시스템 상호연결(Open Systems Interconnection) 모델의 약자로, 컴퓨터 네트워킹과 통신 시스템에서 서로 다른 장비들이 상호작용할 수 있도록 7개의 계층으로 구성된 개념적인 프레임워크이다. 이 모델은 국제 표준화 기구(ISO)에서 개발되었으며, 네트워크 통신을 위한 표준 프로토콜과 서비스의 개발, 이해, 구현을 용이하게 하기 위해 사용된다. OSI 모델의 7개 계층은 각각 특정한 기능과 역할을 수행하며, 데이터를 전송하면서 상위 계층으로부터 받은 데이터에 헤더(Header)나 트레일러(Trailer)를 추가하거나 제거하여 하위 계층으로 전달한다. OSI 모델의 7개 계층 L1. Physical Layer 물리 계층은 네트워크의 하드웨어적인 부분을 다룬다. 케이블,..

[Java] 백준 풀기 16479 - 컵라면 측정하기

자바 백준 16479번 브론즈 3 https://www.acmicpc.net/problem/16479 16479번: 컵라면 측정하기 첫째 줄에 K의 값이 주어진다. 둘째 줄에는 D1과 D2의 값이 사이에 공백을 한 개 두고 차례대로 주어진다. 단, K, D1, D2의 값은 양의 정수이다. www.acmicpc.net 문제 보기 분류: 수학, 기하학, 피타고라스 정리 문제 풀기 컵라면의 높이를 구하기 위해 피타고라스 정리를 이용한다. 윗면과 아랫면의 반지름을 구하고 두 개의 차를 통해 한 변을 정의한다. 이 변과 주어진 변 K로 피타고라스 정리를 적용하여 높이를 찾는다. 코드 보기 import java.util.Scanner; public class Main { public static void main(..

공부하기/백준 2023.07.27

[Java] 백준 풀기 2003 - 수들의 합 2

자바 백준 2003번 실버 4 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 문제 보기 분류: 브루트포스 알고리즘, 누적 합, 두 포인터 문제 풀기 수열의 첫번째 value를 시작으로 다음 value와 합하여 누적 합을 만들고, 그 누적 합을 다음 value와 합하여 다시 누적 합을 만드는 식을 반복하면서 주어진 수열의 마지막 value까지 누적 합하는 누적 합 array를 완성한다. 누적 합 arra..

공부하기/백준 2023.07.26

[Linux] WSL 우분투 삭제 후 다시 설치하기

윈도우 스토어를 통해 처음 설치된 우분투를 사용하다가 지저분해져 삭제 후 재설치를 한다. Stop 우분투 wsl -l -v `-l` 명령어는 현재 시스템에 설치된 WSL 배포판의 목록 표시 `-v` 명령어는 WSL 배포판의 버전 정보를 표시 wsl --shutdown Unregister 우분투 wslconfig /unregister ubuntu-22.04 wsl -l -v Install 우분투 wsl --install --distribution ubuntu-22.04 wsl -l -v

알아가기/Linux 2023.07.26

[Java] 백준 풀기 1676 - 팩토리얼 0의 개수

자바 백준 1676번 실버 5 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 수학 문제 풀기 뒤에서부터 처음 0이 아닌 숫자가 나올때까지 0의 개수를 구한다. 이때, 0의 개수는 주어진 수 N에서 5의 빈도수를 세어 구한다. N보다 작은 수들 중에서 5의 배수는 1개씩, 25의 배수는 2개씩, 125의 배수는 3개씩, ... 이런 식으로 각각의 배수들을 세어서 전체 0의 개수를 구한다. N이하의 수 중 5의 배수만 관심이 있기에 for loop는 5부터 시작하여 i *= 5 스텝으로 증가한다. 코드 보기 imp..

공부하기/백준 2023.07.25

[Java] 백준 풀기 11653 - 소인수분해

자바 백준 11653 브론즈 1 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 소수 판정 문제 풀기 소인수분해는 주어진 정수 N을 소수인 i로 나누며, 나눌 수 없을 때까지 반복한다. 이때, i는 2부터 제곱근까지 검사한다. N이 1인 경우 바로 return 한다. for loop과 while loop을 통해 정수 N을 나누어 떨어지는 소인수 i를 모두 출력하고, 최종 남은 소인수를 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(..

공부하기/백준 2023.07.24

[Java] 백준 풀기 2609 - 최대공약수와 최소공배수

자바 백준 2609번 브론즈 1 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 정수론, 유클리드 호제법 문제 풀기 유클리드 호제법을 이용하여 최대공약수를 구한다. Wikipedia: 유클리드 호제법 두 수가 아래와 같이 정해졌을때, 18 24 num2가 0이 될때까지, 함수의 파라미터 num1과 num2의 위치 바꿈과 동시에 num1 % num2의 나머지를 구하는 재귀함수를 돌린다. num1: 18, num2: 24 num1: 24, num2: 18 num1: 18, num2: 6 n..

공부하기/백준 2023.07.23

[Java] 백준 풀기 1485 - 정사각형

자바 백준 1485번 실버 3 https://www.acmicpc.net/problem/1485 1485번: 정사각형 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 네 줄로 이루어져 있으며, 점의 좌표가 한 줄에 하나씩 주어진다. 점의 좌표는 -100,000보다 크거나 같고, 100,000보다 작거나 같 www.acmicpc.net 문제 보기 분류: 정렬, 기하학 문제 풀기 네 개의 점을 입력받고 두 점사이의 거리를 모두 계산하여 네 변과 두 대각선의 길이를 각각 비교하여 정사각형을 판단한다. 네 개의 좌표를 통해 총 6가지의 두 점 사이의 거리를 찾을 수 있다. 이 결과를 오름차순 정렬하여 짧은 4개가 같고 긴 2개가 같으면 정사각형 조건임을 이용한다. 코드 보기 import ja..

공부하기/백준 2023.07.22

[Java] 백준 풀기 15904 - UCPC는 무엇의 약자일까?

자바 백준 15904번 실버 5 https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 문제 보기 분류: 문자열, 그리디 알고리즘 문제 풀기 입력된 문자열에 대해 indexOf()를 사용하여 char 타입으로 대문자 `U`, `C`, `P`, `C`의 index를 찾는다. 각 indexOf()는 존재하는 문자를 찾으면 그 문자의 `index`를 반환하고 그렇지 않으면 `-1`을 반환한다. 첫 번째 문자의 탐색이 끝나면 그 ind..

공부하기/백준 2023.07.21

[Docker] docker-compose에서 React PORT 변경에 대한 정리

React code를 실행시 npm start 명령어를 통해 작동시킨다. 이때, 기본 포트는 3000번으로 정해져있다. docker-compose에서 React를 적용시 포트 변경에 대해 알아본다. React 포트 변경 방법 React 포트를 사용자 기준에 맞게 변경을 하려면 네 가지 정도의 방법이 있다. 첫번째, 명령어로 바로 변경하는 방법 PORT=8000 npm start 터미널에서 npm start로 리엑트를 실행시 앞에 PORT=8000을 붙여 변경할 수 있다. 두번째, package.json을 변경하는 방법 맥 ... "scripts": { "start": "PORT=8000 && react-scripts start", } ... (리눅스도 같다고 하는데 확인 안해봄) 기존에 있던 코드 rea..

알아가기/Docker 2023.07.21