🗂️ 문제링크: https://www.acmicpc.net/problem/10815 💡 접근법이분탐색 시 탐색 범위를 설정해야 한다. 해당 문제에서는 카드 리스트를 정렬하고, 카드 리스트 인덱스의 최솟값(0)과 최댓값(len(card_list)-1)을 low와 high로 각각 지정한다. mid의 값을 변경하며 탐색한다. 이때 카드 리스트에서 mid 인덱스에 해당하는 값보다 상근이가 가지고 있는 숫자가 작으면 mid 값을 줄여야하므로 high = mid - 1로 설정한다. 반대의 경우엔 mid 값을 키워야하므로 low = mid + 1로 설정한다. 만약 카드 리스트에서 mid 인덱스에 해당하는 값이 상근이가 가지고 있는 숫자와 같다면 1을 저장한다. 😎 내 코드import sysN = int(sys...
🗂️ 문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/43238?language=python3# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡 접근법문제에서 원하는 것은 모든 사람이 심사를 받는데 걸리는 시간이므로 start와 end 그리고 mid 모두 시간에 관련된 변수라고 짐작할 수 있다. 즉, 입국 심사에 걸리는 최소 시간과 최대 시간을 의미하므로 low는 1로 지정하고 high는 max(times) * n로 지정한다. 탐색할 범위를 지정했으므로 mid 값을 변경시켜 값을 확인해야..
🗂️ 문제링크: https://www.acmicpc.net/problem/11726 💡 접근법n=1일 때 직사각형을 채우는 방법은 1가지다.n=2일 때 직사각형을 채우는 방법은 2가지다.n=3일 때 직사각형을 채우는 방법은 3가지다.n=4일 때 직사각형을 채우는 방법은 5가지다.n=5일 때 직사각형을 채우는 방법은 8가지다. 이를 점화식으로 나타내면 dp[i] = dp[i-1] + dp[i-2] (N>2)이다. 😎 내 코드import sysn = int(sys.stdin.readline())dp = [0] * 1001dp[1] = 1dp[2] = 2for i in range(3, n+1): dp[i] = dp[i-1] + dp[i-2]print(dp[n]%10007) ✅ 정답 확인
본 게시글은 김영한 강사님의 [김영한의 실전 자바 - 기본편]을 수강하며 작성한 글입니다. 01. 절차 지향 프로그래밍프로그래밍 방식은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다. 절차 지향 프로그래밍실행 순서를 중요하게 생각하는 방식이다. 따라서 절차를 지향한다.프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, “어떻게”를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍객체를 중요하게 생각하는 방식이다. 따라서 객체를 지향한다.실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, “무엇을”을 중심으로 프로그래밍 한다. 둘의 중요한 차이절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면,..
🗂️ 문제링크: https://www.acmicpc.net/problem/1654 💡 접근법“N개보다 많이 만드는 것도 N개를 만드는 것에 포함된다.”라는 문제 조건에 따라 이분탐색의 기준을 필요한 랜선 개수 이상인지 이하인지 따라 범위를 좁혀나간다. 따라서 만들 수 있는 랜선의 수가 N개일 때 종료조건을 걸지 않고 계속해서 범위를 좁혀나가면서 최대의 랜선 길이를 구한다. 더이상 탐색 범위가 좁혀지지 않을때 high 값이 가장 긴 랜선의 길이가 되어 출력된다. 😎 내 코드import sysK, N = map(int, sys.stdin.readline().split())line = [int(sys.stdin.readline()) for _ in range(K)]def cal_line_num(heigh..
🗂️ 문제링크: https://www.acmicpc.net/problem/2805 💡 접근법N과 M의 범위가 크기 때문에 모든 경우의 수를 계산할 경우 시간초과가 발생한다. 절단 높이를 작게하면 가져가는 나무의 길이가 크고, 절단 높이를 크게하면 가져가는 나무 길이기 작다.이를 이용하여 절단 높이를 기준으로 이분 탐색을 수행한다. 또한 절단 높이를 최대로 하여 필요한 만큼의 나무를 가져가므로, 나무의 길이가 딱 떨어지지 않는 경우를 생각해야 한다. 이 경우엔 high(mid-1) 값을 출력하면 필요한 만큼 나무를 가져가면서 최대로 하는 절단 높이를 구할 수있다. 😎 내 코드import sysN, M = map(int, sys.stdin.readline().split())tree = list(map(..
본 게시글은 김영한 강사님의 [김영한의 실전 자바 - 기본편]을 수강하며 작성한 글입니다. 01. 기본형 vs 참조형변수의 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 기본형(Primitive Type)변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 말한다.ex. int, long, double, boolean실제 사용하는 값을 변수에 담을 수 있다.들어있는 값을 그대로 계산에 사용할 수 있다.int a = 10, b = 20; int sum = a + b; 참조형(Reference Type)데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 말한다.ex. Student student1, int[] students실제 사용하는 값을 변수에 담는 것이 아니다. 이름 그..
ISMS 관리과정(5단계)정보보호 정책 수립 및 범위설정경영진 책임 및 조직 구성위험 관리정보보호대책 구현사후관리 1단계: 정보보호정책 수립정보보호정책 수립조직의 정보보호 목표와 방향성을 명확하게 하는 정보보호 정책을 수립한다.조직 및 책임의 설정이때 조직 규모와 정보자산에 맞는 적절한 인원수 및 예산을 배정한다.관리자와 담당자를 지정하여 정보보호 정책의 승인, 자원 할당, 정보보호 조직의 구성 및 운영에 대한 책임을 갖게 한다. 또한 정보보호를 담당할 전담 조직이나 팀을 구성하고, 각종 권한과 책임을 명시한다. 2단계: 정보보호 관리체계 범위 설정범위 설정의무 대상자는 범위 내 서비스 제공에 필요한 모든 시스템을 포함한다.정보자산의 식별범위 내 모든 자산을 식별하고 문서화한다.정보자산의 식별은 현재 보..