Computer Science 136

[Python 3] BOJ 1256 사전

https://www.acmicpc.net/problem/1256 1256번: 사전 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 김진영 조교는 동호와 규완이에게 특별 과제를 주었다. 특별 과제는 특별한 문자열로 이루어 진 사전을 만드는 것이다. 사전에 수록되 www.acmicpc.net 오늘의 문제는 사전 이라는 문제이다. 친구의 추천을 받고 문제를 접하게 되었는데, 평소에 확률과 통계 과외를 해왔어서, 바로 중복조합이라는 아이디어를 얻었다. 중복조합이란, 서로 다른 n개 중 k개를 중복을 허용하며 순서를 고려하지 않고 선택하는 것을 말합니다. 이렇게 정의를 보면, 정확하게 와닿기가 쉽지 않다. 쉽게 생각하면, a,b,c,d 총 4명의 후보가, 그리고 10명의 투표인단이 있다고 생각하자. ..

[MySQL] 프로그래머스 Lv.1 Python 개발자 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/276013?language=mysql 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPER_INFOS WHERE SKILL_1 LIKE 'Python' OR SKILL_2 LIKE'Python' OR SKILL_3 LIKE 'Python' order by ID asc; SELECT를 통해 표시해야할 내용을 선택, FROM은 테이블의 이름, WHERE는 조건. S..

[Python 3] LEETCODE 141. Linked List Cycle

class Solution: def hasCycle(self, head: Optional[ListNode]) -> bool: fast=head slow=head while fast and fast.next: fast=fast.next.next slow=slow.next if fast==slow: return True return False 플로이드의 토끼와 거북이 알고리즘 (Floyd's Tortoise and Hare Algorithm)을 이용하였다. 플로이드의 토끼와 거북이 알고리즘이란, Cycle이 존재하는 링크드 리스트에서 토끼와 거북이가 있고, 토끼는 한 번에 두 칸씩, 거북이는 한 번에 한 칸씩 움직인다고 하자. 둘이 만났을 때 거북이를 시작점으로 옮기고, 토끼와 거북이 둘 다 한칸씩 이동시키..

프로그래머스 SQL: 상위 n개 레코드,아픈 동물 찾기

SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 SELECT 함수: FROM ~~에 있는 모든 컬럼의 데이터를 찾음. ORDER BY : 특정 값으로 sort. LIMIT n: 개수 제한 SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION like 'sick' order by ANIMAL_ID asc; where a like b: a에 b가 들어가는 친구들 order by a asc : a로 오름차순. where a=b a와 b가 같은 경우 where a!=b a와 b가 다른 경우

[Python 3] BOJ 23288 주사위 굴리기 2

최근 구현 문제를 푸는데 있어서 부족함이 있음을 깨닫고, 복잡하고 긴 글을 가진 문제를 정확하게 해석하는 문제들을 해결하려고 노력 중이다. 바로 이 주사위 굴리기 2 같은 문제이다. https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 문제가 정말 친절하면서도, 복잡하다. 천천히 독해해보도록 하자. 먼저 보드게임판이 있다고 상상을 해보자. 맨 위쪽 끝에 주사위가 위치해있다. 1가 맨 위에 그려져있고, 6이 바닥에 있다. 처음에는, ..

JSON, XML / SOAP, REST / VPN

JSON과 XML 모두 자료를 통신할 때 사용하는 표준화된 데이터 포맷이다. REST API와 같은 데이터 통신 방법에서 사용이 된다. JSON (Javascript Object Notation): 개발 도구 환경 설정, 사용 정의 등 다양한 설정에 사용된다. 형식이 단순하고, 빠르게 읽힌다. XML (Extensible Markup Language): XML 문서를 통해 레이아웃을 재사용하고, 뷰와 로직을 분리할 수 있다. 언어와 상관 없이 데이터를 전달할 수 있음. JSON은 속도가 빠르고, 길이도 짧다. 하지만 안정성은 상대적으로 낮고 UTF-8로만 인코딩이 가능하다. XML은 느리고 길지만, 안정성이 높고, 다양한 인코딩 지원이 된다. SOAP (Simple Object Access Protoco..

[Python 3] BOJ 2036 수열의 점수

https://www.acmicpc.net/problem/2036 2036번: 수열의 점수 n개의 정수로 이루어진 수열이 있다. 이 수열에서 한 정수를 제거하거나, 또는 두 정수를 제거할 수 있다. 한 정수를 제거하는 경우에는 그 정수가 점수가 되고, 두 정수를 제거하는 경우에는 두 www.acmicpc.net 오늘 볼 문제는 수열의 점수라는 문제이다. 해당 문제는 한 개의 숫자를 제거해서 정답에 더하거나, 두 개의 숫자를 제거해서 제거한 두 숫자를 곱한 것 정답에 더할 수 있다. 이 점수의 합의 최대값을 구하면 된다. n=int(input()) pos=[] neg=[] zero=0 one=0 for _ in range(n): num=int(input()) if num>1: pos.append(num) ..

IP / DNS + CORS

IP주소는 컴퓨터가 연결된 네트워크 주소이다. IP 주소에는 고정 IP, 유동 IP가 있다. 고정 IP는 고정되어서 일정한 주소를 사용하는 IP를 의미한다. 유동 IP는 계속 변하는 IP로, 고정 IP는 한정적이여서 개인마다 고정 IP를 할당해줄 수 없기 때문에, 통신 업체에서 사용하지 않는 주소 중 할당해주는 IP이다. 공인 IP는 전 세계의 유일한 IP 주소이고, 사설 IP는 개인이나 특정 기관에서 임의로 사용하는 IP이다. IPv4와 IPv6가 있는데, IPv4는 8비트씩 4개, IPv6는 16비트씩 8부분으로 이루어져있다. www.naver.com 에서 www는 호스트 이름, naver.com은 도메인이다. DNS가 도메일을 IP 주소로 변환시켜준다. CORS (Cross-Origin Resour..

[Python 3] BOJ 1253 좋다

https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 오늘 풀어볼 문제는 '좋다'라는 문제이다. 굉장히 간단하면서도, 막상 구현하려니 쉽지 않은 골드 문제이다. n=int(input()) data=list(map(int,input().split())) data.sort() answer=0 for i in range(n): num=data[i] left=0 right=n-1 while left!=right: temp=data[left]+data[right] if i==left: ..

[Python 3] BOJ 26093 고양이 목에 리본 달기

평소에 약한 DP를 연습하기 위해서 해당 문제를 풀었다. 이 문제에서는 고양이들을 일자로 세워두는데, 양 옆에 같은 리본을 둔 고양이를 세워둘 수 없다. 그래서, 조금 나이브하게 접근을 했는데, 만약 가능하면 전 고양이한테 제일 큰 만족도를 얻을 수 있는 리본을 해주려고 한다. 만약, 전 인덱스에 있는 고양이들 중 제일 큰 만족도를 가진 고양이가 해당 리본을 하고 있다면, 두번째로 많은 만족도를 가진 고양이에서 따온다. 이를 더욱 간결하게 가져오기 위해서, 파이썬의 heapq 라이브러리를 사용했다. maximum heap를 구현해서 만족도 1등, 2등을 매번 효율적으로 가져올 수 있도록 하였다. import heapq n,k=map(int,input().split()) data=list(list(map(..