-
솔리디티 테스트 코드 1 TOP NEW
들어가기 전에. 블록체인 기반의 서비스를 만든다면 어떻게 신뢰를 줄 수 있을까? 그리고 자산이 오가야 하는 핵심 로직을 어떻게 검증하고, 더 완전하게 만들 수 있을까? 그냥 테스트 코드 없이 배포하기 성공 케이스만 테스트하기 1.의 경우 -> 작은 버그 하나로도 컨트랙트의 신뢰성이 사라진다. 2.의 경우 -> 예외적 상황에 대한 고려가 쉽지 않음. 즉 부정적 시나리오에 대한 내구성이 낮음. 이런 생각 후, 테스트 코드에 많은 공을 들이기로 결정. 테스트 환경 구축 : Hardhat & Chai Hardhat Hardhat은 이더리움 개발자를 위한 개발 환경.... Read More
-
이런저런 언어별 날짜 / 시간 출력 TOP NEW
왜 날짜는 생각보다 어려운걸까 사람은 날짜를 표현하는게 쉽지만… 사실 모두가 알 것이다. 외국 한 번 나가서 생활하면 지금까지 내가 쓰던건 그냥 나만 아는 그런 표기법이라는 사실을. 근데 온갖 프로그래밍 언어에서도 마찬가지인 것 같다. 그래서 정리한다. 이름하야 “언어별 포매팅” JS/TS Date 객체를 통해 시간을 다룬다. 브라우저 환경에서 돌아가는게 보통(이었으니까) 시간대를 지정하는것이 중요하고 더불어 특정 시간대를 지정할 필요도 있으니까… 현재 날짜 / 시간 가져오기 Date 객체는 new Date()를 통해 현재 시스템의 날짜와 시간을 기준으로 생성한다. const now = new ... Read More
-
[Java] 백준 1789 - 수들의 합 TOP NEW
문제 문제 풀이 \[\sum\_{k=1}^N k = \frac{N(N+1)}{2}\] 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 즉 주어진 S보다 작거나 같도록 하는 부등식이 성립한다. \[{N^2 + N} \le 2S\] \[N^2 + N - 2S \le 0\] 이제 이 부등식을 만족하는 N의 범위를 찾기 위해, 먼저 해당 이차 방정식의 해를 구한다. \[N^2 + N - 2S = 0\] 근의 공식은 중학교에서 배웠지만 기억이 나지 않는다…! 면 아래에 잘 써있음. \[x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\] ... Read More
-
[Java] 백준 2589 - 보물섬 TOP NEW
백준 2589 - 보물섬 문제 접근 모든 육지에서 시작해보기 -> 모든 L이 잠재적 보물의 시작점일 수 있음 따라서 각 시작점에서 BFS를 실행 -> 모든 육지까지의 최단 거리. 그 중 가장 길었던 거리 기록 전체 거리 중 가장 긴 거리 찾기 이와 같은 괒어을 통해 육지와 육지 사이의 최단 경로지만, 최대인 경로를 찾을 수 있을 것이라는 판단. 구현 전 지도 저장 하지만 자바로 2차원 배열을 저장하는 것은 여전히 쉽지 않음… 큐 좌표 그리고 거리 방문 배열 이동 방향 (dr dc) 구현 import java.io.Bu... Read More
-
[Java] 백준 2309 - 일곱 난쟁이 TOP NEW
백준 2309 - 일곱 난쟁이 문제 접근 키의 합은 100 그러면 7명을 다 뽑아서 (9C7) 100인지 확인해야 할까? 했지만 2명만 가짜임. 2명을 뽑아서 전체 합에서 뺀 후 100이라면 7명은 진짜임 9C7 = 9C2 와! 단순해졌다! 구현 전 어떻게 이중 루프 탈출시킬까… 누군가 라벨에 대해서 말해줘서 써볼까 했지만 아직 학습하지 않은 내용을 사용하기에는 거부감이 들었다. 따라서 플래그 변수를 통해 진행 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.Inp... Read More
-
[Node.js] 백준 1254 - 팰린드롬 만들기 TOP NEW
[Node.js] 백준 1254 - 팰린드롬 만들기 들어가기 전에 팰린드롬 == “회문” 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말, 숫자, 문자열 e.g. : eye 이해 문자열이 주어지면, S 뒤에만 문자를 추가해서 가장 짧은 팰린드롬을 만들자 S = “abacaba”는 이미 팰린드롬이니 추가할 필요 없음. 길이 7이 최소가 된다. S = “abab”는 abab 뒤에 a를 추가하면 ababa가 되어 팰린드롬이 되고, 길이는 5가 된다. 조건상 이게 가장 짧은 팰린드롬의 길이. 접근 틀렸던 접근 양쪽에서 들어오면서 일치하지 않으면, 그냥 바로바로 뒤에 추가하자 -&g... Read More
-
[Node.js] 백준 19941 - 햄버거 분배 TOP NEW
[Node.js] 백준 19941 - 햄버거 분배 함부기 함부기 함부기 함부기 여봐라~ … 햄버거를 최대한 많이 먹는 경우를 찾는 문제. 접근 식탁 위에 사람(P)과 햄버거(H)가 일렬로 놓여 있다. 각 사람은 자신의 위치로부터 K 거리 이내에 있는 햄버거를 단 하나만 먹을 수 있다. 최대한 많은 사람이 햄버거를 먹도록 하는 것이 목표. => 전형적인 그리디(Greedy) 알고리즘 문제의 형태. 각 단계에서 최선의 선택을 하여 전체 최적해를 도출하자. 인데! 가까이 있는걸 먹는게 정답은 아니라는.. 나중에 이 고민 나옴 첫 시도 사람을 앞에서부터 처리 자기 범위 내 가장 가까운 햄버... Read More
-
[Java] 백준 1244 - 스위치 켜고 끄기 TOP NEW
백준 1244 - 스위치 켜고 끄기 문제 문제 이해 스위치 상태 : 1 & 0 남학생 : 자신의 배수에 해당하는 스위치 전환 여학생 : 대칭 구간에 대해서 스위치 전환 1번 스위치에서 시작하여 마지막 스위치까지 한 줄에 20개씩 출력 접근 스위치 번호는 1부터 시작한다. 따라서 N + 1 개의 배열 선언 student 클래스 활용 gender 와 number 가짐 남학생 / 여학생 메서드 분리 스위치 상태 변경 = XOR 연산 Student 클래스 static class Student { int gender; // 1: 남학생, 2: 여학생 in... Read More
-
[Java] 백준 7568 - 덩치 TOP NEW
백준7568 - 덩치 문제 접근 x,y p,q 가 있다고 할 때 x,y가 p,q 보다 둘다 커야 한다 (&& 사용) 해당 인물의 등수는 자신보다 큰 사람 k + 1 N은 50으로 작음. <- O(N^2) 도 문제가 없다! 아 브루트포스! 구현 전 굳이 class 를 만들어서 접근할까? 2차원 배열 쓸까? 어차피 하나하나 집어넣을 것, class를 써서 익숙해지자는 마인드 StringBuilder에 현재 인물의 등수와, 공백을 통해 출력! 구현 import java.io.BufferedReader; import java.io.IOException; ... Read More
-
프로젝트 내 유저 개인 식별 TOP NEW
들어가기 전에. 유저를 어떻게 식별하여 중복 가입을 막을 수 있을까? 그리고 어떻게 조금은 더 안전하게 관리할 수 있을까? 현재 기획이 완료되어 개발중인 프로젝트인 “Re-Use“에는 유저 1명이 1개의 계정만을 가질 수 있어야 한다. 블록체인과 모바일 신분증을 이용하여 인증하기 때문에 그렇게 어렵지 않을 것이라 생각했지만. UX 관점: 사용자에게 별다른 추가 인증 과정 없이, 모바일 신분증 인증만으로 간편한 로그인/회원가입 경험을 제공해야 함 로그인/회원가입 로직: 모바일 신분증 인증 후 반환되는 “유저의 고유한 값”을 통해, 기존에 등록된 사용자라면 로그인을, 새로운 사용자라면 회원... Read More