일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Interview
- Deep Dive
- frontend
- solidity
- 파이썬
- 실행 컨텍스트
- 블록체인
- let
- 자바스크립트
- 알고리즘
- Algorithm
- Execution context
- 정렬
- 함수
- Javascript
- Queue
- blockchain
- nft
- 클로저
- BOJ
- 프로퍼티
- 변수
- Python
- git pull
- 리액트
- var
- 백준
- 솔리디티
- react
- 딥다이브
- Today
- Total
목록전체 글 (80)
공부하자
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. # 메모리 초과 n = int(input()) array = [0] * (n + 1) data = [] for i in range(n): data.append(int(input())) array[data[i]] += 1 for i in range(len(array)): for j in range(array[i]): print(i) n = int(sys.stdin.readline())..
정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 선택 정렬 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해 나가는 방식. 알고리즘 문제 풀이에는 비효율적 선택 정렬의 시간 복잡도 : O(N²) array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] print(array) 삽입 정렬 아직 정렬되지 않은 임의의 데이터를 이미 정렬된 ..
event 블록체인 네트워크의 블록에 특정값을 기록하는 것 정의하는 방법 : event 이벤트 이름(쓰고자 하는 타입과 이름); contract A{ event info(string name, uint256 money); } 출력하는 방법 : emit 이벤트 이름(이벤트 파라미터 값 넣어주기); contract A { event info(string name, uint256 money); function sendMoney() public { emit info("KimDaeJin", 1000); } } Remix에서 위의 sendMoney()라는 함수를 실행했을 때, "KimDaeJin"이라는 이름과 1000 이라는 금액이 logs에 info 이벤트가 출력이 되는 것을 확인할 수 있습니다. 즉, 블록체인 ..
상속 스마트 컨트랙 사이의 상속은 변수와 함수들을 상속해줍니다. 상속하는 방법 상속 받을 컨트랙(Son) is 상속 해주는 컨트랙(Father) { ... } contract Father{ string public familyName = "Kim"; string public givenName = "Jung"; uint256 public money = 100; constructor(string memory _givenName) public { givenName = _givenName; } function getFamilyName() view public returns(string memory){ return familyName; } function getGivenName() view public retur..
instance : 하나의 contract에서 다른 contract에 접근할 때 쓰임. 정의 : (컨트랙 이름) (인스턴스 이름) = new 컨트랙이름(); contract A{ uint256 public a = 5; function change(uint256 _value) public { a = _value; } } contract B{ A instance = new A(); function get_A() public view returns(uint256) { return instance.a(); } function change_A(uint256 _value) public { instance.change(_value); } } 위와 같이 contract B에서 contract A에 접근하고 싶을 때는 ..
1. Parameter와 Return값이 없는 function 정의 uint256 public a = 3; function changeA1() public{ a = 5; } 2. Parameter는 있고, Return 값이 없는 function 정의 // function 이름(받고싶은 타입 변수명) 접근제어자 {} function changeA2(uint256 _valu) public{ a = _value; } 3. Parameter와 Return값 둘 다 있는 function 정의 // function 이름 (받고싶은 타입 변수명) public returns(반환하고자 하는 type) {} function changeA3(uint256 _value) public returns(uint256) { a =..
변수 만들기 (data type) (접근 제한자) (변수명) = (값); ex) bool public b = false; data type : boolean, bytes, address, unit // boolean 연산자 bool public b1 = !false; // true bool public b2 = false || true; // true bool public b3 = false == true; // false bool public b4 = false && true; // false // bytes 1 ~ 32 bytes4 public bt = 0x12345678; bytes public bt2 = "STRING"; bytes에 따로 숫자를 주지 않는 것도 가능. address : 20byt..
문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. - 처음 코드 p = input().strip() if len(p) == 0: print(0) num = 0 for i in p: if i == ' ': num += 1 print(num + 1) - 최종 코드 1 (72 ms..