본문 바로가기
728x90

TIL - 프로그래밍292

[백준] 20303. 할로윈의 양아치 - Python https://www.acmicpc.net/problem/20303 20303번: 할로윈의 양아치 첫째 줄에 정수 $N$, $M$, $K$가 주어진다. $N$은 거리에 있는 아이들의 수, $M$은 아이들의 친구 관계 수, $K$는 울음소리가 공명하기 위한 최소 아이의 수이다. ($1 \leq N \leq 30\ 000$, $0 \leq M \leq 100\ 000$, www.acmicpc.net 풀이 1명의 아이 사탕을 뺏으면 연결 친구들 다 뺏어야 함 아이들을 그룹 형태로 묶자 deque 사용 [각 그룹의 아이 수, 각 그룹에 아이들 사탕 총 합] k명 이상 뺏으면 안됨 각 그룹의 사탕을 뺏기와 안뺏기 중 더 나은 상황 선택 배낭 문제 - Knapsack 알고리즘 사용 코드 ''' 접근법 ''' fro.. 2023. 6. 12.
[프로그래머스] 표현 가능한 이진트리 - Python https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이진트리를 수로 표현 10진수를 2진수로 만들기 : bin(num)[2:] 포화 이진 트리로 만들기 포화 이진 트리 노드 개수 == (2**n)-1 n 을 구해야 함 (아래 표 보기) n = 정수(log2(길이)) + 1 n == (int(math.log(len(num), 2)) + 1) 2진수에서 왼쪽에 모자란 길이만큼 0 추가 포화 이진 트리가 가능한 형태인지 확인 부모가 없이 자식만 .. 2023. 6. 12.
[백준] 11758. CCW - Python https://www.acmicpc.net/problem/11758 11758번: CCW 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. www.acmicpc.net 풀이 https://chaemi720.tistory.com/304 [알고리즘] CCW (선분 교차 판별) CCW : Counter Clock Wise 3개의 점 A, B, C가 있을 때 이 점 3개를 이은 직선의 방향을 알고자 할 때 유용한 기하 알고리즘 3가지 경우의 수 외적을 통하여 구할 수 있다. 외적의 결과가 음수면 시계 .. 2023. 5. 3.
[알고리즘] CCW (선분 교차 판별) CCW : Counter Clock Wise 3개의 점 A, B, C가 있을 때 이 점 3개를 이은 직선의 방향을 알고자 할 때 유용한 기하 알고리즘 3가지 경우의 수 외적을 통하여 구할 수 있다. 외적의 결과가 음수면 시계 방향 직선은 0 양수면 반시계 방향 외적이란 두 벡터에 동시에 수직인 벡터를 찾는 연산 두 벡터에 동시에 수직인 벡터는 2개이므로 두 벡터의 순서로 방향을 결정 외적 계산 i, j, k : x축, y축, z축 단위 벡터 선분 교차 교차할려면 A와 B는 CD를 기준으로 다른 영역에 있어야 한다. 즉, CCW 부호가 달라야 한다. 하지만 반드시 교차는 아니다. 양쪽에 대해 둘 다 방향이 달라야 실제로 교차함을 확인 가능 예외 네 점 중 세 점이 일직선 하나의 점이 나머지 선분 사이에 있.. 2023. 5. 3.
Linux, Shell Command Shell 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램 sh : 최초의 쉘 bash : Linux 표준 쉘 터미널/콘솔 쉘을 실행하기 위해 문자 입력을 받아 컴퓨터에 전달 프로그램의 출력을 화면에 작성 명령어 명령어 의미 옵션 mkdir 폴더명 폴더 생성 Make Directory ls 현재 폴더의 파일 확인 List Segments -a : .으로 시작하는 것 출력 -l : 퍼미션,소유자,만든날짜,용량까지 출력 -h : 용량을 사람이 읽기 쉽도록 GB,MB 등 표현, -l 과 같이 사용 pwd 현재 경로 절대 경로로 보여주기 Print Working Directory cd 폴더명 폴더 이동 Change Directory echo 텍스트 Python의 print처럼 터미널에 텍스트 출력 ech.. 2023. 4. 27.
파이썬 버전 관리 (venv, pip, poetry) 1. 버전 관리 버전(Version) 소프트웨어 제품의 특정 리릴스에 대한 고유한 식별자 소프트웨어가 처음 출시되었을 때나 업데이트가 이루어질 때마다 새로운 버전 번호 부여해야 한다. 버저닝(Versioning) 버전을 정의하는 방법 CalVer (Calendar Versioning) : Ubuntu 20.04 SemVer (Semantic Versioning) : Python 3.11.0 이전 버전과 호환되지 않는 병경이 있는 경우 주 번호 증가 이전 버전과 호환되며 새로운 기능이 추가되면 부 번호 증가 이전 버전의 버그 수정이 진행되면 패치 번호가 증가 HashVer (Hash Versioning) : Git commit 7e6d3se 2. 파이썬 프로젝트 버전 관리 가상 환경 venv 가상 환경 만.. 2023. 4. 26.
반응형