1이 될 때까지(Greedy, Java)
·
Algorithm
🧩 문제어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다.N에서 1을 뺀다.N을 K로 나눈다.예를 들어 N이 17, K가 4라고 가정하자.이때 1번의 과정을 한 번 수행하면 N이 16이 된다.이후에 2번의 과정을 두 번 수행하면 N은 1이 된다.결과적으로 이 경우 전체 과정을 실행한 횟수는 3이 된다.이는 N을 1로 만드는 최소 횟수이다. N과 K가 주어질 때 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 🎯 조건입력첫째 줄에 N(2≤N≤100,000)과 K(2≤ K ≤ 100,000)가 공백으로 구분되며 각각 자연수로 주어진다. 이..
숫자 카드 게임(Greedy, Java)
·
Algorithm
🧩 문제숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다.숫자가 쓰인 카드들이 N X M 형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다.먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다.그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다.따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다.카드들이 N X M 형태로 놓여 있을 때, 게임의 룰에 맞게 카드를 뽑는 프로그램을 만드시오 🎯 조건입력첫째 줄에..
큰 수의 법칙(Greedy, Java)
·
Algorithm
🧩 문제해당 문제에서 큰 수의 법칙은 일반적으로 통계 분야에서 다루는 내용과 약간 다르다다양한 숫자들이 주어졌을 때 주어진 수를 M번 더해서 가장 큰 수를 만드는 것이다숫자가 N개 주어졌을때 횟수 M이 있고, 연속해서 더할 수 있는 K가 있다예를 들어 N=5, M=8, K=3인 경우숫자들이 2 4 5 4 6이면 6+6+6+5+6+6+6+5 = 46 가 정답이 된다 🎯 조건입력첫째 줄에 N(2둘째 줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단, 각각의 자연수는 1이상 10,000 이하의 수로 주어진다.입력으로 주어지는 K는 항상 M보다 작거나 같다.출력첫째 줄에 동빈이의 큰 수의 법칙에 따라 더해진 답을 출력한다. 🔍 예시입력5 8 32 4 5 4 6출력46 💻 코드import..
욕심쟁이 알고리즘 그리디(Greedy)
·
Algorithm
그리디는 국내에서 탐욕법으로 소개되며 말 그대로 탐욕적으로 문제를 푸는 알고리즘이다탐욕적이라는 것은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다그리디 알고리즘을 사용하면 매 순간 가장 좋은 것을 선택하며 나중에 미칠 영향은 고려하지 않는다 그리디 알고리즘은 최단 경로, 정렬 등의 알고리즘 유형과 같이 사용 방법을 정확하게 아는 것 보다유형이 다양하기에 많은 유형을 접해보고 문제를 풀어보며 학습을 해야한다고 생각한다 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘으로 정렬 알고리즘과 자주 같이 사용된다가장 대표적인 예시로 거스름돈 문제가 있다 점원이 500원, 100원, 50원, 10원을 무한히 가지고 있다고 가정할 때손님에게 거슬러 줘야 할 돈이 N이면 500원부터 순서대로 거슬..
[컴퓨터네트워크] Network Security란?
·
CS/컴퓨터네트워크
국민대학교에서 The Computer Networking: A Top-Down Approach, Global Edition 교재를 사용한이창우 교수님의 강의를 듣고 정리한 글입니다What is network security?Confidentiality(기밀성)오직 송신자와 의도된 수신자만이 메세지 내용을 이해할 수 있어야 한다송신자는 메세지를 암호화하고, 수신자는 메세지를 복호화한다 Authentication(인증)송신자와 수신자는 서로의 신원을 확인하기를 원한다인증은 메세지를 주고받는 상대방이 내가 생각하는 그 사람이 맞는지 확인하는 절차이다 message integrity(메세지 무결성)송신자와 수신자는 메세지가 전송 중 또는 그 이후에도 탐지되지 않고 변경되지 않았음을 보장하길 원한다무결성은 데이터..
[컴퓨터네트워크] Link Layer(4)
·
CS/컴퓨터네트워크
국민대학교에서 The Computer Networking: A Top-Down Approach, Global Edition 교재를 사용한이창우 교수님의 강의를 듣고 정리한 글입니다Mobilitymobility가 뭘까?우리는 보통 이동성이라고 생각하면 사람이 움직이는 것을 생각한다그럼 네트워크 관점에서 이동성이란 무엇일까? no mobility(이동성 없음)사용자가 하나의 AP 범위 안에서만 움직이는 경우집 안에서 방 → 부엌 middle mobility(중간 수준의 이동성)사용자가 하나의 네트워크 범위를 벗어나, 연결이 끊어졌다 새로운 네트워크에 다시 접속하는 경우집에서 와이파이 → 카페 와이파이 high mobility(높은 수준의 이동성)사용자가 여러 AP의 범위를 빠르게 지나가면서도, 진행 중이던 ..
[컴퓨터네트워크] Link Layer(3)
·
CS/컴퓨터네트워크
국민대학교에서 The Computer Networking: A Top-Down Approach, Global Edition 교재를 사용한이창우 교수님의 강의를 듣고 정리한 글입니다wireless & mobility Introduction현재에는 유선 전화 가입자보다 무선 전화 가입자가 5배 이상 많은 시대이다중요한 두 가지 도전 과제가 있다바로 wireless와 mobility가 현대 네트워크 환경에서 중요하다는 점이다 wiresless hosts스마트폰과 노트북 이미지가 이에 해당된다응용 프로그램 실행이 가능한 기기들에 해당하며, 이동 가능하거나 고정되어 있을 수 있다 base station(bts)기지국 이미지에 해당되는 부분이다일반적으로 유선 네트워크에 연결된 장비로 무선 호스트와 유선 네트워크 간..
[컴퓨터네트워크] Link Layer(2)
·
CS/컴퓨터네트워크
국민대학교에서 The Computer Networking: A Top-Down Approach, Global Edition 교재를 사용한이창우 교수님의 강의를 듣고 정리한 글입니다LANsMAC addressIP 주소는 32비트로 네트워크 계층에서 사용하는 주소였다호스트 간의 논리적인 통신 경로 지정에 사용되었다예: 192.168.1.1 MAC(or LAN or phsical or Ethernet) 주소는 48비트로 링크 계층에서 사용하는 주소이다물리적으로 같은 네트워크 상의 두 장치 간에 프레임을 전달하기 위해 사용한다예: 1A-2F-BB-76-09-AD IP 주소는 경로 선택용, MAC 주소는 물리적 전달용이라고 생각하면 된다쉽게 말해 IP 주소는 우편 번호, MAC 주소는 주민등록번호처럼 사용되는 것..
[컴퓨터네트워크] Link Layer(1)
·
CS/컴퓨터네트워크
국민대학교에서 The Computer Networking: A Top-Down Approach, Global Edition 교재를 사용한이창우 교수님의 강의를 듣고 정리한 글입니다Introduction, services 용어 정의Nodes(노드):호스트와 라우터를 의미하며 링크 계층 프로토콜을 실행하는 장치를 말한다Links(링크):인접한 노드 사이의 통신 경로(채널)을 말한다종류로는 유선, 무선, LAN이 있다Frame(프레임):링크 계층의 데이터 단위를 의미하며, 상위 계층(IP 등)에서 온 datagram을 프레임으로 캡슐화해서 전송한다 데이터링크 계층의 역할Physically adjacent node(물리적으로 인접한 노드)간 데이터그램을 전송하는 책임을 가진다즉, 바로 옆 장치(호스트, 라우터)..
[데이터베이스] DML : 단일행 내장 함수
·
CS/데이터베이스
국민대에서 데이타베이스시스템(정익사, 이석호저) 교재를 사용하신김혁만 교수님의 강의를 듣고 정리한 글입니다SQL 내장 함수SQL 내장 함수는 데이터 값을 간편하게 조작하고, SQL을 더욱 강력하게 해준다종류는 단일행와 다중행으로 두 종류가 있지만 단일행 내장 함수부터 보려고 한다단일행 내장 함수는 문자형, 숫자형, 날짜형, 변환형, NULL과 관련된 함수들이 존재한다함수명(arg1[, arg2, arg3, ...])각 행에 대해 개별적으로 적용해 데이터 값을 계산하고, 결과를 리턴한다함수의 인자로 상수, 변수, 표현식이 사용 가능하고 함수의 중첩이 가능하다는 특징을 가지고 있다 문자형 함수문자열 데이터를 다루기 위한 함수들로 한 행씩 처리하며 결과를 반환한다이게 주요 함수들이고 예제를 살펴보면서 맛을 보..