분류 전체보기
-
문제 설명 문제풀이처음에 딕셔너리로 접근해야겠다고 생각했다.파이썬의 replace함수에 대해 몰랐을 때는, 생각보다 접근하기에 막막했다replace함수를 적용하면 쉬웠던 문제.. def solution(s): answer = 0 dic = { 0:'zero', 1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine' } for key,value in dic.items(): s = s.replace(value,str(key)) #인자 1을 인자2..
[프로그래머스-Lv.1] 숫자 문자열과 영단어문제 설명 문제풀이처음에 딕셔너리로 접근해야겠다고 생각했다.파이썬의 replace함수에 대해 몰랐을 때는, 생각보다 접근하기에 막막했다replace함수를 적용하면 쉬웠던 문제.. def solution(s): answer = 0 dic = { 0:'zero', 1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine' } for key,value in dic.items(): s = s.replace(value,str(key)) #인자 1을 인자2..
2024.06.09 -
문제 문제풀이개미들을 하나의 리스트에서 ‘튜플’로 관리했다.tuple[1]원소가 1인 경우 : left→right 으로 이동하는 개미오른쪽으로 이동하는 개미(ants[i][1])의 경우, 내 오른쪽 ants[i+1][1] 이 나랑 같이 ‘1’인지 확인한다.만약, 내 오른쪽 개미가 0에 해당된다면, 다른 방향의 개미이므로 (i,i+1) 를 change_set에 저장tuple[1]원소가 0인 경우 : right→left으로 이동하는 개미왼쪽으로 이동하는 개미(ants[i][1])의 경우, 내 왼쪽 ants[i-1][1] 이 나랑 같이 ‘0’인지 확인한다.만약, 내 오른쪽 개미가 1에 해당된다면, 다른 방향의 개미이므로 (i-1,i) 를 change리스트에 저장change_set배열이 아니라 set()으로 관..
[백준 3048] 개미문제 문제풀이개미들을 하나의 리스트에서 ‘튜플’로 관리했다.tuple[1]원소가 1인 경우 : left→right 으로 이동하는 개미오른쪽으로 이동하는 개미(ants[i][1])의 경우, 내 오른쪽 ants[i+1][1] 이 나랑 같이 ‘1’인지 확인한다.만약, 내 오른쪽 개미가 0에 해당된다면, 다른 방향의 개미이므로 (i,i+1) 를 change_set에 저장tuple[1]원소가 0인 경우 : right→left으로 이동하는 개미왼쪽으로 이동하는 개미(ants[i][1])의 경우, 내 왼쪽 ants[i-1][1] 이 나랑 같이 ‘0’인지 확인한다.만약, 내 오른쪽 개미가 1에 해당된다면, 다른 방향의 개미이므로 (i-1,i) 를 change리스트에 저장change_set배열이 아니라 set()으로 관..
2024.06.07 -
문제 배경StyledPaginationContent에서 PaginationLink 컴포넌트로 감싸진 숫자들이 map 함수 안에 있기 때문에 숫자가 클릭될 때마다 PaginationLink 컴포넌트가 생성 => 따라서 PaginationLink 컴포넌트가 생성되고 삭제될 때마다 레이아웃이 변경되어 숫자들이 살짝씩 밀리는 현상이 발생 해결 방법이를 해결하기 위해서는 PaginationLink 컴포넌트를 map 함수 밖으로 이동하여 PaginationLink 컴포넌트가 한 번만 생성되도록 해야 함 단순하게, map함수를 감싸는 것이 PaginationLink가 아니게 하면 된다.태그로 감싸면서 문제를 해결했다 코드 비교 ..
[페이지네이션] 숫자 클릭 시 ui깨지는 현상 해결문제 배경StyledPaginationContent에서 PaginationLink 컴포넌트로 감싸진 숫자들이 map 함수 안에 있기 때문에 숫자가 클릭될 때마다 PaginationLink 컴포넌트가 생성 => 따라서 PaginationLink 컴포넌트가 생성되고 삭제될 때마다 레이아웃이 변경되어 숫자들이 살짝씩 밀리는 현상이 발생 해결 방법이를 해결하기 위해서는 PaginationLink 컴포넌트를 map 함수 밖으로 이동하여 PaginationLink 컴포넌트가 한 번만 생성되도록 해야 함 단순하게, map함수를 감싸는 것이 PaginationLink가 아니게 하면 된다.태그로 감싸면서 문제를 해결했다 코드 비교 ..
2024.06.02 -
# OnBoarding.jsx시작하기 Button # KakaoLogin.jsx 1) 카카오 로그인 버튼 누르기 전 : 사용자가 카카오 로그인을 시작할 수 있도록 카카오 로그인 페이지(kakaoURL)로 리디렉션하는 역할const REST_API_KEY = "ff5cfd59376e7e4e903dd4b45e1f7a50"; const Redirect_URI = "http://localhost:3000/login/oauth2/code/kakao"; const kakaoURL = `https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=${REST_API_KEY}&redirect_uri=${Redirect_URI}&response_..
React 카카오 소셜 로그인 구현(REST API)# OnBoarding.jsx시작하기 Button # KakaoLogin.jsx 1) 카카오 로그인 버튼 누르기 전 : 사용자가 카카오 로그인을 시작할 수 있도록 카카오 로그인 페이지(kakaoURL)로 리디렉션하는 역할const REST_API_KEY = "ff5cfd59376e7e4e903dd4b45e1f7a50"; const Redirect_URI = "http://localhost:3000/login/oauth2/code/kakao"; const kakaoURL = `https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=${REST_API_KEY}&redirect_uri=${Redirect_URI}&response_..
2024.05.30 -
컴파일 (Compile) vs 인터프릿 (Interpret)개발자들이 코드를 작성할 때 사용하는 고급 언어는 사람이 이해하기 쉽지만, 컴퓨터는 0과 1로 이루어진 기계어만을 이해할 수 있다. 이러한 상황에서 고급 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 형태로 변환하는 과정이 필요하다. 이 변환은 주로 컴파일과 인터프리트라는 두 가지 방식으로 이루어진다. 컴파일(Complie)런타임 이전에 소스 코드를 검사하고 기계어로 해석하는 방식이다. 특징은 아래와 같다.전체 코드를 검사하고 실행하기 때문에 실행 전에 오류를 발견할 수 있다.구동 시간은 오래 걸리지만, 이후에는 매우 빠르게 동작한다.구동 시 시스템으로부터 메모리를 할당 받아 사용한다.대체로 컴파일 결과물이 바로 기계어로 전환 => OS 및 환경..
컴파일 시스템 vs 런타임 시스템컴파일 (Compile) vs 인터프릿 (Interpret)개발자들이 코드를 작성할 때 사용하는 고급 언어는 사람이 이해하기 쉽지만, 컴퓨터는 0과 1로 이루어진 기계어만을 이해할 수 있다. 이러한 상황에서 고급 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 형태로 변환하는 과정이 필요하다. 이 변환은 주로 컴파일과 인터프리트라는 두 가지 방식으로 이루어진다. 컴파일(Complie)런타임 이전에 소스 코드를 검사하고 기계어로 해석하는 방식이다. 특징은 아래와 같다.전체 코드를 검사하고 실행하기 때문에 실행 전에 오류를 발견할 수 있다.구동 시간은 오래 걸리지만, 이후에는 매우 빠르게 동작한다.구동 시 시스템으로부터 메모리를 할당 받아 사용한다.대체로 컴파일 결과물이 바로 기계어로 전환 => OS 및 환경..
2024.05.29 -
# 배경하루네컷 서비스에서 결제기능을 맡게 되었다.결제 요청은 프론트에서 진행하고, 그것을 검증하는 단계를 백엔드에서 맡아주기로 했다. 우리가 진행한 방식은 아래와 같다 # 결제 연동 코드 작성 전 준비 단계결제 연동 코드를 작성하기 위해, 알고 있어야 할 정보가 있다. 1. 고객사 식별 코드(IMP)2. PG 상점 아이디(MID)테스트 용으로 채널 등록을 할 때, '일반 결제'를 선택했더니 제공되었다 # 포트원 라이브러리 추가- 공식 문서에는 리액트 메뉴얼이 없어서, 리액트로 변경했다. 코드는 다른께서 블로그에 잘 정리해주셔서 활용했다- useEffect 안에 스트립트를 넣었다. useEffect(() => { // 포트원 라이브러리 추가 let script = document.queryS..
React에서 Portone(포트원) 결제 연동하기(카카오페이)# 배경하루네컷 서비스에서 결제기능을 맡게 되었다.결제 요청은 프론트에서 진행하고, 그것을 검증하는 단계를 백엔드에서 맡아주기로 했다. 우리가 진행한 방식은 아래와 같다 # 결제 연동 코드 작성 전 준비 단계결제 연동 코드를 작성하기 위해, 알고 있어야 할 정보가 있다. 1. 고객사 식별 코드(IMP)2. PG 상점 아이디(MID)테스트 용으로 채널 등록을 할 때, '일반 결제'를 선택했더니 제공되었다 # 포트원 라이브러리 추가- 공식 문서에는 리액트 메뉴얼이 없어서, 리액트로 변경했다. 코드는 다른께서 블로그에 잘 정리해주셔서 활용했다- useEffect 안에 스트립트를 넣었다. useEffect(() => { // 포트원 라이브러리 추가 let script = document.queryS..
2024.05.29 -
# 10진수 -> 2진수 변환 : 10진수를 몫이 0이 될때까지 계속 2를 나누고, 나머지를 역순으로 읽으면 된다. #재귀함수를 이용해서 풀어보자 # 재귀함수 만들 때 이름을 DFS로 하겠다 # 재귀를 할 때는 앞으로 -> if / else로 하겠다. def DFS (x): # 재귀함수 종료 조건: N이 0이면 종료 if x == 0: return #함수를 종료시키겠다는 뜻 else: print(x%2 , end=' ') #한칸 띄워서 출력 DFS(x//2) # ex) x = 11 # D(11) -> D(5) -> D(2) -> D(1) -> D(0) 만약, x=11이라고 했을 때, D(11) -> D(5) -> D(2) -> D(1) -> D(0) 순서로 1 1 0 1이 출력된다. 11이라는 10진수를..
재귀함수를 이용한 이진수 출력# 10진수 -> 2진수 변환 : 10진수를 몫이 0이 될때까지 계속 2를 나누고, 나머지를 역순으로 읽으면 된다. #재귀함수를 이용해서 풀어보자 # 재귀함수 만들 때 이름을 DFS로 하겠다 # 재귀를 할 때는 앞으로 -> if / else로 하겠다. def DFS (x): # 재귀함수 종료 조건: N이 0이면 종료 if x == 0: return #함수를 종료시키겠다는 뜻 else: print(x%2 , end=' ') #한칸 띄워서 출력 DFS(x//2) # ex) x = 11 # D(11) -> D(5) -> D(2) -> D(1) -> D(0) 만약, x=11이라고 했을 때, D(11) -> D(5) -> D(2) -> D(1) -> D(0) 순서로 1 1 0 1이 출력된다. 11이라는 10진수를..
2023.08.25 -
그래프의 각 정점을 방문하는 그래프 순회에는 크게 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 이 있다. 깊이 우선 탐색(DFS) 주로 스택으로 구현하거나 재귀로 구현 백트래킹을 통해 뛰어난 효용을 보인다 너비 우선 탐색(BFS) 주로 큐로 구현 그래프의 최단 경로를 구하는 문제 등에 사용 그래프를 표현하는 방법은 크게 2가지이다. 인접 행렬 인접 리스트 인접 리스트 인접 리스트는 key: 출발 노드 , value: 도착 노드 로 표현할 수 있다. 도착 노드는 여러 개가 될 수 있으므로 리스트 형태이다. 파이썬의 딕셔너리 자료형으로 다음과 같이 나타낼 수 있다. graph = { 1:[2,3,4], 2:[5], 3:[5], 4:[], 5:[6,7], 6:[], 7:[3], } 위와 같은 딕셔너리를..
그래프 순회(BFS/DFS)그래프의 각 정점을 방문하는 그래프 순회에는 크게 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 이 있다. 깊이 우선 탐색(DFS) 주로 스택으로 구현하거나 재귀로 구현 백트래킹을 통해 뛰어난 효용을 보인다 너비 우선 탐색(BFS) 주로 큐로 구현 그래프의 최단 경로를 구하는 문제 등에 사용 그래프를 표현하는 방법은 크게 2가지이다. 인접 행렬 인접 리스트 인접 리스트 인접 리스트는 key: 출발 노드 , value: 도착 노드 로 표현할 수 있다. 도착 노드는 여러 개가 될 수 있으므로 리스트 형태이다. 파이썬의 딕셔너리 자료형으로 다음과 같이 나타낼 수 있다. graph = { 1:[2,3,4], 2:[5], 3:[5], 4:[], 5:[6,7], 6:[], 7:[3], } 위와 같은 딕셔너리를..
2023.08.25