분류 전체보기
HUFS IT 플랫폼 구조 분석
1. 블록체인의 동작 방식 기본적으로 key, value로 구성된 전역 상태(Global State)가 존재 (블록이 없을 경우 비어있음). “블록체인에 트랜잭션을 보낸다” = 전역상태의 데이터를 변경 및 추가하는 작업 1번 블록이 생성되면 암호화폐 발행 첫 번째 트랜잭션은 발행을 뜻함(보낸사람 : coinbase) 이후 트랜잭션은 거래내역 저장 위 과정이 블록체인 네트워크안의 모든 참여자에게 적용 트랜잭션에서 값이 변경될 경우 디지털 서명이 바뀌어서 데이터 변조의 위험이 없다.(블록체인의 특징) 트랜잭션을 받은 사람(노드 운영자, 블록을 생성하는 사람) 블록에 트랜잭션을 저장해준다. 트래잭션은 실시간으로 기록 되는 것이 아니라 일정시간(10분)동안 받은 트랜잭션들을 모두 모은 다음 hash계산을 진행하..
Greedy Algorithm & 구현
Greedy Algorithm 현재 상황에서 지금 당장 좋은 것만 고르는 방법 정당성이 중요하다. (항상 최적의 해를 갖지 않기 때문) 대표적인 문제 1 : 거스름 돈 문제 1260원을 500원, 100원, 50원, 10원으로 거슬러줄 때 최소한의 개수 Solution n = 1260 count - 0 array = [500, 100, 50, 10] for coin in array: count += n // coin n %= coin print(n) 참고 화폐의 종류에서 각각의 화폐가 이전 화폐의 배수라서 그리디 알고리즘이 가능 500 400 100 이렇게 있을 경우 DP를 활용해야 한다. 시간복잡도 : O(n) n은 동전 종류의 개수 대표적인 문제 2 : 1이 될 때까지 문제 어떤 수 N이 1이 될 때..
MarkDown 사용법 정리
제목 (Header) # 제목 1 ## 제목 2 ### 제목 3 #### 제목 4 ##### 제목 5 ###### 제목 6 제목 1 ====== 제목 2 ------ 강조(Emphasis) 이텔릭체는 *별표(asterisks)* 혹은 _언더바(underscore)_를 사용하세요. 두껍게는 **별표(asterisks)** 혹은 __언더바(underscore)__를 사용하세요. **_이텔릭체_와 두껍게**를 같이 사용할 수 있습니다. 취소선은 ~~물결표시(tilde)~~를 사용하세요. 밑줄은 ``를 사용하세요. 실행 결과 이텔릭체는 별표(asterisks) 혹은 언더바(underscore)를 사용하세요. 두껍게는 별표(asterisks) 혹은 언더바(underscore)를 사용하세요. 이텔릭체와 두껍게를 같..
프로그래머스 Level 1 - 문자열을 정수로 바꾸기
문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 0으로 시작하지 않습니다. My Sol def solution(s): return int(s) Best Sol def strToInt(str): result = 0 for idx, number in enumerate(str[::-1]): if number == '-': result *= -1 else: result += int(number) * (10 ** idx) return result
프로그래머스 Level 1 - 수박수박수박수박수?
문제 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. My Sol (Best Sol) def solution(n): return "수박"*(n//2) if n % 2 == 0 else "수박"*(n//2)+"수" Reference Sol def water_melon(n): s = "수박" * n return s[:n]
프로그래머스 Level 1 - 서울에서 김서방 찾기
문제 String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한 사항 seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. Kim은 반드시 seoul 안에 포함되어 있습니다. My Sol (Best Sol) def solution(seoul): return "김서방은 {}에 있다".format(seoul.index("Kim"))
프로그래머스 Level 1 - 크레인 인형뽑기 게임
문제 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 아래 ..
프로그래머스 Level 1 - 문자열 내림차순으로 배치하기
문제 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항 str은 길이 1 이상인 문자열입니다. My Sol def solution(s): t = list(s)# 필요 x return "".join(sorted(t, reverse = True)) Best Sol def solution(s): return ''.join(sorted(s, reverse=True)) 설명 문자열을 sorted()하면 문자열이 정렬된다.(list로 바꿔줄 필요 x)