[React] 마우스 비밀번호 입력기🖱 / 키보드 보안 입력기 / 2차 비밀번호
비밀번호 입력기 결제 관련 중요한 창에서 비밀번호를 입력할 때나, 게임 2차 비밀번호를 입력할 때 매크로를 방지하고 키보드 해킹을 막기 위해 위와 같은 마우스 입력기를 쓰곤 합니다. 이런 키보드 보안 프로그램 모습을 따서 간단한 React 마우스 입력기를 만들어 보았습니다!! 비밀번호 한 글자를 입력할 때 마다, 비밀번호 배열이 무작위하게 재설정됩니다. Submit 버튼으로 입력한 비밀번호를 확인할 수 있습니다! 코드 써먹으려면 코드를 알아야겠죠? 간단한 단일 웹 어플리케이션이기에 create-react-app typescript 모드로 개발하였습니다. App.tsx 의 모습입니다. 전체 틀을 구성하고 있고 Inputter 컴퍼넌트를 불러와 표시합니다. 저는 배열에 숫자들을 담아 섞어준 뒤 그 배열 전체..
2020. 7. 20.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 줄 서는 방법 / Python 문제풀이
해답) import copy def factorial(n): if n == 1: return 1 return n * factorial(n-1) def solution(num, k): if num == 1: return [num] remain_nums = [i for i in range(1, num+1)] cands = [factorial(i) for i in range(num-1, 0, -1)] # 팩토리얼 큰 것 부터 모음 pre_nums = [] # 각 자리를 결정해주는 수 ''' 만약 pre_nums = [1,1,1] 이면 정답 = [2,3,4] ''' k_copy = k # 2번째 방법 때 k 써야돼서 for i in range(num-1): pre_nums.append(((k_copy-1) //..
2020. 7. 17.
[프로그래밍] 변수명에 대한 고찰 - 깔끔하고 섹시한 코드를 위해 😎 / (2) 기준, 조건 세우기
변수 이름 변수명을 지을 떄 지킬 조건들 1. 단어가 3개까지만 들어가게 지을 것. - 너무 길어진 변수는 읽기 힘들어용 ㅠ 예) getElementInt (o) getBackendElementInt (x) 2. Sum, Average, Count, Max 같이 특정 양이나 최대 최소를 나타내는 것들은 뒤의 단어로 쓸 것. 예) studentCount (o) countStudent (x) 3. 같은 의미의 변수일 때, 내부 함수의 변수는 더 짧은 변수를 사용할 것. 예) def solution(expression): def loop(exp): * exp 에 관한 함수 return exp return expression 4. 배열, 딕셔너리 등등의 타입일 경우 s 혹은 list, arr 등등 표시를 붙일 ..
2020. 7. 11.
[프로그래밍] 변수명에 대한 고찰 - 깔끔하고 섹시한 코드를 위해 😎 / (1) 내 얘기 (일기)
변수명에 대한 내 생각과 경험 보통 처음으로 코딩을 배울 때의 코드들은 대부분 int a; int b; a = 1; b = 2; c = a + b; 이렇게 a, b, c 라는 너무나도 간단한 변수로 되어있었다. 사실 변수 이름은 코딩의 본질이 아니다. 변수가 똥이어도, 외계어여도, 코드는 잘만 돌아간다. 그니까 초심자들을 위한 코드들은 그냥 별 생각 없이 볼 수 있는 a b c 나 i j 뭐 수학에서 쓰는 변수들? 같은 걸로 되어있었다. 그 시기에는 그게 왜 그런가? 라던가 이상하다? 라는 생각을 해보지도 못하고 쓰게 된다. 나도 그냥 당연한 것으로 받아들이고 a, b, c , i ~~~ 이런 변수들만 주구장창 써가면서 코딩을 하곤 했었다. 줄 수가 길어지면 그냥 i2, i3, z 등등 내가 좋아하는 영..
2020. 7. 11.
[프로그래머스💯] 코딩테스트 연습 > 등굣길
해답) def solution(m, n, puddles): path = [[0 for _ in range(m)] for _ in range(n)] path[0][0] = 1 for y in range(n): for x in range(m): if [x+1, y+1] in puddles: print("x,y = > ", x, y) continue if x != m-1: path[y][x+1] += path[y][x] if y != n-1: path[y+1][x] += path[y][x] print(path) return path solution(4, 3, [[2, 2]]) 풀이) 이 문제는 동적 계획법의 대표적이면서도 간단한 문제입니다! 동적 계획법 문제의 기본은 중간점까지의 최적해를 계속해서 저장한 뒤 ..
2020. 7. 9.
[백준] 1978번 소수찾기 😁 / 비트마스킹 / Python 문제풀이
풀이) 에라토스테네스의 체 방식을 이용하여 소수 갯수를 출력해주면 됩니다! 에라토스테네스의 체를 이용해 소수를 구분해주는 과정에서 일반적인 방법으로 하려면, 모든 숫자에 대해 소수인지 여부 (True/False) 를 나타내주는 값이 있어야 하기 때문에 메모리가 많이 소요됩니다. 예를들어 10000이 소수인지 아닌지를 판별하려면 seive[0] = FALSE seive[1] = FALSE seive[2] = TRUE 이런식으로 에라토스 테네스는 길이가 10000 짜리인 리스트가 생깁니다. 따라서 메모리를 줄일 수 있는 비트마스킹 기법을 사용하였습니다. 0 : 합성수 1 : 소수 seive[0] = 10101100 (순서대로 7,6,5,4,3,2,1,0에 해당하는 소수 여부) seive[1] = 001010..
2020. 7. 3.
[네트워크📶] DNS Message Format
DNS란? https://programming119.tistory.com/157 [네트워크📶] DNS란 / DNS Name Space / DNS Tree / TLD DNS란 DNS(Domain Name System) 는 적용계층의 프로토콜 중 하나로 도메인 이름과 IP주소를 변환시킬 때 쓰는 프로토콜입니다. naver.com 이나 tistory.com 같은 사이트 URL도 우리같은 사용자가 눈에 보기 쉽게 programming119.tistory.com DNS Zone File https://programming119.tistory.com/158 [네트워크📶] DNS Zone File / NS LOOKUP 사용법 🎶 DNS란? https://programming119.tistory.com/157 [네트워..
2020. 6. 15.
[네트워크📶] DNS Zone File / NS LOOKUP 사용법 🎶
DNS란? https://programming119.tistory.com/157 [네트워크📶] DNS란 / DNS Name Space / DNS Tree / TLD DNS란 DNS(Domain Name System) 는 적용계층의 프로토콜 중 하나로 도메인 이름과 IP주소를 변환시킬 때 쓰는 프로토콜입니다. naver.com 이나 tistory.com 같은 사이트 URL도 우리같은 사용자가 눈에 보기 쉽게 programming119.tistory.com DNS Zone File 특정 네임 스페이스의 한 부분에에 해당하는 여러 정보들을 담고 있는 파일입니다. - DNS : set of "Zone file" - Zone file : set of records 각각의 domain name 들은 zone fil..
2020. 6. 13.