만족은 하되 안주하지는 말자

기록해야 기억한다

분류 전체보기 168

[python] union 연산으로 노드 집합 관계 구하기

from sys import stdin n,m = map(int, stdin.readline().split()) parent = [0]*(n+1) def find_parent(a): if a != parent[a]: parent[a] = find_parent(parent[a]) return parent[a] def union_parent(a,b): pa = find_parent(a) pb = find_parent(b) if pa > pb: parent[a] = b else: parent[b] = a for i in range(1,n+1): parent[i] = i for i in range(n): li = list(map(int,stdin.readline().split())) for j in range(..

[python] 백준 14503번: 로봇 청소기

문제 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 분류 구현과 시뮬레이션 아이디어 설명대로 구현하되, DFS 모델에서 백트래킹이 없다고 보면된다. 다음 경우의 수를 찾으면 바로 break 걸어서 다른 경우의 수를 큐에 추가하지 않도록 해야한다. 문제를 꼼꼼히 읽지 않아 후진의 경우 를 코드로 구현하지않아서 이거 왜안돼?? 만 외친 채 40분정도를 날린 기분이다. 구현문제는 기본적으로 문제를 자아아알 읽는것이 정답의 길이다. 방향전환과 진행..

[Java] StringTokenizer, StringBuffer, StringBuilder 클래스 차이

StringTokenizer 문자열이 특정 구분자 (이를 delimeter라 한다)로 연결 되어있으면 2가지 방법으로 문자열을 쪼갠다. 1. String.split() 2. java.util.StringTokenizer 1과 2의 차이는 1은 정규표현식(regular expression), 2는 문자로 구분을 한다는 것이다. String.split() class Main { public static void main(String\[\] args) { String str = "안녕하세요,만나서-반가워요"; String\[\] tokens = str.split(",|-"); for (String token : tokens) { System.out.println(token); } } } StringTokeni..

[python] 백준 14500번: 테트로미노

문제 www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변� www.acmicpc.net 테마 브루트포스 아이디어 테트로미노들은 기본모양에서 90도씩 회전, x/y축 반전(뒤집기) 등이 가능하다. 네모의 칸수는 총 4칸. 돌리고 뒤집고 돌리고 뒤집고 ... [[0,0,0], [0,0,0], [0,0,0]] 3*3 이내의 좌표로 모든 테트로미노의 좌표가 표현 가능하다. 무식하지만 총 19개의 테트로미노 경우의 수를 'tetrominos' 배열에 저장해 활용했다. N*M 배열에서 각 i행j열 좌..

[python] 백준 14501번: 퇴사

문제 www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 분류 다이나믹 프로그래밍 아이디어 날짜를 index로 삼아 (1일째 = dp[1]...) 해당 일까지 얻을 수 있는 금액의 최대 이윤을 저장한다. bottom-up 방식으로, 최대 이윤을 구할 수 있는 N일부터 dp[i] 를 계산한다. 점화식은 dp[i] = max(dp[i]+dp[time[i]+i] , max_pay) 다. max_pay 는 해당일까지 계산한 최대이윤 값이다. 만약 N=7 기준으로, 7일차에 일할 경우 받는 pay = 50, 걸리는 시간 = 1이면 dp[7] = 50 이다. max_pay 또한 0에서 50 이 된다. 6일차에..

[JAVA] 예외 (Exception)

예외 Exception 에러란? JVM 실행에 문제가 발생함을 의미. 자바에서는 에러 이외에 예외(Exception)라고 부르는 오류가 존재한다. 예외는 예외 처리 (Exception Handling) 을 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 예외의 종류 예외에는 일반 예외와 실행 예외가 있는데 일반 예외는 컴파일 과정에서 검사한다. 만약 예외처리 코드가 없다면 컴파일과정에서 오류가 발생한다. 하지만 실행예외 (런타임예외)는 컴파일러가 검사하지 않는다 그렇기 때문에 개발자를 괴롭히는 에러는 대부분 실행 예외다. (=런타임예외) 예외 객체 트리 일반예외는 대신 RuntimeException을 상속받지 않는다. 그 외의 객체는 런타임예외 객체라 할 수 있다. 예외 처리 코..

[hyperledger-fabric] hyperledger fabric 1.4 설치 및 실행 가이드

hyperledger - fabric 을 해보고자 하는 사람들에게 도움이 될 수 있길 바라는 맘에 쓴, 하이퍼레저 패브릭 설치 v1.4 가이드 입니다. AWS EC2 ubuntu 18.04 버전을 기준으로 하고 있습니다. 시작 sudo apt update -y sudo apt upgrade -y git --version # 없으면 설치 git clone -b release-1.4 --single-branch https://github.com/hyperledger/fabric-samples.git 위 명령어는 fabric-sample 의 여러 브랜치 중, 버전1.4 브랜치만 가져오는 명령어 입니다. 따라서 다른 버전을 하고싶다면 https 주소 앞에 부분은 지우면 됩니다. git 설치하는 법은 다른 곳을 ..

프로그래밍/ETC 2020.09.20