전체 글 18

UML(Unified Modeling Language) 간단정리

UML(Unified Modeling Language)이란? 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어 UML을 쓰는 이유는? 개발 기획과 산출물에 대한 확인 개발자 뿐만 아니라 사용자와 일반인(비전문가)가 모두 이해하고 사용할 수 있기 때문 UML의 구성요소 사물(Things) 관계(Relationship) 다이어그램(Diagram) 사물(Things)이란? 다이어그램 안에서 관계가 형성될 수 있는 대상. 모델을 구성하는 기본 요소. 사물의 종류 구조 사물(Structural Things) 행동 사물(Behavioral Things) 그룹 사물(Group Things) 주해 사물(Annotation Thing..

CS 2023.02.10

백준 11729번: 하노이 탑 이동 순서

하노이 탑 이동 순서 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐..

코딩 테스트 2023.02.09

프로그래머스 개인정보 수집 유효기간(2023 KAKAO BLIND RECRUITMENT) Python

문제 링크 today가 정해진 약관 내에 있지 않으면 배열로 리턴하는 문제이다. 최초 통과 코드 #약관 딕셔너리로 표현 def make_rules(terms): rules={} for r in terms: a,b=r.split() rules[a] = int(b) return rules # '.'을 구분자로 해 배열로 반환 def split_date(today): today_list=list(map(int,today.split('.'))) return today_list #약관만큼의 개월수를 더하기 def policy_apply(dates_data, n, i): dates_data[i][1] += n while dates_data[i][1] > 12: dates_data[i][1] -= 12 dates_d..

코딩 테스트 2023.02.07

백준 2751번: 수 정렬하기 2(Python)

수 정렬하기 2 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 5 5 4 3 2 1 예제 출력 1 복사 1 2 3 4 5 코드 import sys n = int(input()) num_list=[] for i in range(n): num_list.append(int(sys.stdin.readline())) num_list.sort() for i in range(n..

코딩 테스트 2023.02.06

백준 2750번: 수 정렬하기(Python)

수 정렬하기 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 2 3 4 1 예제 출력 1 1 2 3 4 5 코드1 n = int(input()) num_list=[] for i in range(n): num_list.append(int(input())) num_list.sort() for i in range(n): print(num_list[i]) sort() 내장함수를 사용해 ..

코딩 테스트 2023.02.06

백준 2798번: 블랙잭(Python)

문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때, ..

코딩 테스트 2023.02.06

[자료구조] 파일의 구조(색인 파일, 직접 파일, 색인 순차 파일)

파일이란? 하나의 단위로서 취급되는 연관된 *레코드의 조직적인 집단. * 레코드: 논리적으로 연관된 **필드들의 집합 ** 필드: 파일 구성의 최소단위 파일의 구조란? 보조기억장치에 파일을 구성하는 레코드들을 편성하는 방식. 순차 파일, 직접 파일, 색인 순차 파일등의 방식이 있다. 순차 파일(Sequential File) 레코드를 논리적인 처리 순서에 따라 연속된 물리적 저장공간에 기록하는 방식 장점 연속적인 공간에 저장하므로 메모리효율이 높다. 일괄 처리에 적합하다. 어떠한 기억 매체에서라도 용이하게 사용할 수 있다. 단점 파일 내 어떤 레코드를 삽입하거나 삭제할 때(앞쪽 레코드일수록) 레코드의 이동이 많이 일어나 시간이 많이 소요될 가능성이 있다. 검색할 때 순차적으로 검색하기 때문에(뒤쪽 레코드일..

CS/자료구조 2023.02.06