분류 전체보기 1175

[python] time 모듈

time 간단한 시간 데이터를 처리할 때 사용하는 파이썬 내장 모듈 주로 epoch time을 다룰 때 사용한다 Epoch Time Unix Time, POPIX Time UTC를 기준으로 1970년 1월 1일 0시 0분 0초로부터의 경과 시간을 나타낸다. 흔히 timestamp라고 하기도 한다. 시간대, 윤년, 윤달, 양력, 응력 등의 개념 등을 모델링하지 않고 시간을 단순히 숫자로 저장하고 처리할 수 있다. time_struct 인간 친화적이지 않은 timestamp가 주어졌을 때, time 모듈이 날짜와 시간을 표현하기 위해 사용하는 클래스 이름 속성 비고 tm_year 연도 2021, 1992 tm_mon 달 1~12 tm_mday 일 1~31 tm_hour 시 0~23 tm_min 분 0~59 ..

Python 2021.10.18

[BOJ] 7287 - 등록

문제 백준 온라인 저지에서 맞은 문제의 수와 이이디를 그대로 출력하는 프로그램 작성 입력은 없으며, 첫 줄에 맞은 문제의 수, 둘째 줄에 아이디를 출력한다. 풀이 백준 사이트로부터 값을 받아서 출력하는 문제가 아니라, 사용자가 직접 자신이 맞은 문제의 수와 아이디를 확인하여 출력하면 된다. 본인의 아이디와 맞은 문제에 대한 정보는 사이트 오른쪽 상단 아이디를 클릭하면 확인할 수 있다. 임의의 숫자나 문자열을 넣으면 틀린 것으로 채점한다니, 채점 시 출력 값과 실제값을 비교하는 모양이다. 풀이 코드 Python3을 사용했다. 직접 문제 수를 세고 싶지 않아 맞은 문제 목록을 복사하여 문자열로 저장한 뒤, 공백을 기준으로 자른 후 반환 배열의 길이를 출력하도록 했다. quest = "1000 1001 100..

Algorithm/백준 2021.10.17

[Java] 가변 인자 (varargs)

가변 인자 (Variable argument) 매개변수의 개수를 동적으로 지정하는 기능 JDK 1.5부터 추가되었으며, printf()가 가변 인자를 사용한 대표적인 메서드라고 할 수 있다. 가변 인자 기능이 없던 JDK 1.4 이하의 버전에서는 컬렉션 또는 배열을 이용해 여러 개의 인수를 처리했다. 컬렉션/베열 사용 예시 import java.util.Vector; public class main { public static void main(String args[]) { String[] str = {"a", "b", "c"}; Vector v = new Vector(); v.add("A"); v.add("B"); v.add("C"); print_val(str); print_val(v); } stati..

Java 2021.10.16

[MySQL/MariaDB] DELETE / TRUNCATE

DELETE, TRUNCATE는 두 개 모두 테이블 내용을 삭제하는 쿼리이다. 하지만 둘이 완전히 같은 기능을 하는 것은 아니다. 두 쿼리의 특징을 적어둔다. DELETE DML(Data Manipulation Language, 데이터 조작 언어) 중 하나 [ WITH [ ,...n ] ] DELETE [ TOP ( expression ) [ PERCENT ] ] [ FROM ] { | rowset_function_limited [ WITH ( [ ...n ] ) ] } [ ] [ FROM [ ,...n ] ] [ WHERE { | { [ CURRENT OF { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } } ] [ OPTION ( [ ,...n ] )..

Database 2021.10.15

[MySQL/MariaDB] INSERT IGNORE

MySQL에서 INSERT문을 사용하여 테이블이 데이터를 저장할 때, Key에 해당하는 값이 테이블에 이미 존재하는 경우 아래와 같이 중복 키 에러가 발생한다. 예시 사진의 person 테이블은 PK로 phone 컬럼을 지정했다. 이런 에러가 발생하지 않도록 MySQL에서는 중복 레코드를 관리할 수 있는 몇 가지 방법(INSERT IGNORE, REPLACE INTO, INSERT INTO - ON DUPLICATE)을 제공한다. 이 글은 그 중 하나인 INSERT IGNORE에 대해 설명한다. INSERT IGNORE 키가 중복되는 경우 데이터를 추가하지 않고 무시한다. 키가 중복되지 않은 데이터만 테이블에 추가한다. 구문 INSERT IGNORE INTO VALUES (...); INSERT-INTO..

Database 2021.10.14

[응용 문제] 최대 수익 알고리즘

문제 어떤 주식의 특정 기간 동안의 가격 변화가 주어졌을 때, 그 주식 한 주를 한 번 사고팔아 얻을 수 있는 최대 수익을 계산하라. 가격의 최대값과 최솟값을 구한 뒤 계산하는 것으로는 이 문제를 해결할 수 없다. 파는 행위가 사는 행위 후에 발생해야 하기 때문이다. 내 풀이 리스트의 첫번째 값을 빼서 구매금액으로 하고, 리스트의 나머지 값 중 최댓값을 판매금액이라고 한다. 판매금액과 구매금액의 차가 현재 최대 수익보다 크면 최대 수익 금액을 갱신한다. 이 반복은 리스트에 자료가 한 개 남으면 종료한다. def max_benefit(list): benefit = 0; while len(list) > 1: buy = list.pop(0) sell = max(list) if sell - buy > benef..

[응용 문제] 가짜 동전 찾기 알고리즘

문제 좌우 무게를 비교할 수 있는 양팔 저울을 이용해 겉보기에 똑같은 동전 n개 중, 싸고 가벼운 재료로 만들어진 가짜 동전을 찾아라. 조건 저울질에 해당하는 부분은 아래 함수와 같다. 구현하고자 하는 알고리즘은 아래의 weight 함수를 통해 가짜 동전의 위치를 찾아야 한다. def weight(a, b, c, d): fake = 29 if a

[응용 문제] 미로 찾기 알고리즘

모델링 (모형화) 주어진 현실의 문제를 정형화하거나 단순화하여 수학이나 컴퓨터 프로그램으로 쉽게 설명할 수 있도록 표현하는 것 자연이나 사회현상을 사람의 언어로 표현한 문제를 컴퓨터가 이해할 수 있는 수학식이나 프로그래밍 언어로 번역하는 철차 아래와 같은 그림으로 출발점과 도착점이 주어졌을 때 출발점에서 도착점까지 가기 위한 최단 경로를 찾는 알고리즘을 구현하라. 위 문제를 모델링하면 a에서 출발해 p로 도착하는 최단 경로를 구하고, 그 경로를 출력하라. 미로는 그래프를 이용해 정의한다. 각 위치를 꼭짓점으로, 각 위치에서 직접 연결된 위치를 선으로 하는 그래프를 정의하면 된다. 코드 maze_info = { 'a': ['e'], 'b': ['c', 'f'], 'c': ['b', 'd'], 'd': ['..

[자료 구조] 친구의 친구 찾기 / 그래프

그래프 (Graph) 꼭짓점(vertex)과, 그 꼭짓점 사이를 연결한 선(edge)의 집합 파이썬에서는 그래프를 표현할 수 있는 다양한 방법이 있지만, 이 글에서는 딕셔너리와 리스트를 이용한다. 꼭짓점을 key로 정의하고, 직접 연결된 꼭짓점 list를 value로 정의한 딕셔너리를 선언하여 그래프를 표현할 수 있다. fr_info = { "Summer": ["John", "Justin", "Mike"], "John": ["Summer", "Justin"], "Justin": ["John", "Summer", "Mike", "May"], "Mike": ["Summer", "Justin"], "May": ["Justin", "Kim"], "Kim": ["May"], "Tom": ["Jerry"], "Je..

[python] 여러 값을 한 줄로 입력 받기

아래 몇 가지 함수를 이용하면 한 줄로 입력받은 각각의 값을 변수에 저장할 수 있다. 먼저 필요한 함수를 먼저 살펴본다. input() 사용자가 입력한 값을 문자열로 취급하여 변수에 저장할 수 있다. 코드 a = input() # 프롬프트에 메세지 출력 b = input("enter text: ") split() 매개변수로 전달받은 문자열을 기준으로 문자열을 나누어 리스트로 반환한다. 전달받은 문자 값이 없는 경우 스페이스, 탭, 엔터 등의 공백을 기준으로 문자열을 나눈다. map(function, interable) 내장 함수로 입력받은 반복 가능한 자료형에 대해 입력받은 함수를 수행하여 반환한다. 보통 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해 사용한다. map 객체를 반환하기 때문에 객..

Python 2021.10.09