728x90
반응형

Tech 90

[React] Parent와 Props

Parent, Props React는 컴포넌트 기반으로 구성하게 된다. 각 컴포넌트는 자체적으로 동작할 수 있는 기능적인 단위이다. 이때 부모 컴포넌트에서 자식 컴포넌트에 데이터를 전달하기 위해서는 props를 사용합니다. 아래와 같이 name이라는 prop을 가진 ChildComponent를 부모 컴포넌트에서 불러와 사용할 수 있다. import React from 'react'; import ChildComponent from './ChildComponent'; function ParentComponent() { return ; } 아래는 자식 컴포넌트에서 props를 받아와 사용하는 코드이다. import React from 'react'; function ChildComponent(props) {..

Tech/React 2023.03.14

[BOJ] 백준 1918 후위 표기식 c++ (스택)

문제 출처 : https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 풀이 컴퓨터과에서 저학년때 배우는 수식.. 이 문제는 중위표기식을 후위표기식으로 고치는 문제이다. 막막할 수 있지만 생각해보면 단순하다. 우선순위와 연산자를 처리해야 하므로 stack에 조건부로 pop, push를 처리해주면 된다. 먼저 문자열을 입력받고 인덱스를 순회하며 경우에 따라 처리한다. 알파벳 대문자인 경우 바로 정답으로 출력한다. (연산자와 관련없음) '(' 인 경우 ..

Tech/Algorithm 2023.02.20

[Spring, Redis] Spring boot에서 redis 서버 여러개 사용하는 방법(하나의 AWS EC2 환경에서 구현하기)

스프링부트에서 여러 개의 Redis 서버를 사용하는 방법이다! (필자는 여러 개의 Redis 서버를 사용해 jwt토큰 서버, 인기검색어 서버를 분리하는 작업을 하고 있었다.) 개발 환경 - aws ec2 - redis - spring boot - java 11 1. EC2 설정 (리눅스 서버 설정) 0. 기존 redis.conf 파일 원래 돌아가고 있던 redis.conf 파일의 경로를 찾는다. 1. 기존 redis.conf 파일 복사 기존 redis.conf 파일을 복사 후 이름을 변경한다. (redis2.conf) 2. 복사 파일 설정 변경 복사한 파일의 포트 번호를 변경한다.(6379 -> 6380) 로그 파일 경로도 변경해준다. 3. 복사한 redis 파일 실행 $ redis-server [복사파..

Tech/Server 2023.02.17

[프로그래머스] 택배 배달과 수거하기 c++ (2023 KAKAO BLIND RECRUITMENT)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/150369?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 결국 가장 먼 집부터 들려야 하므로, 그리디 알고리즘으로 해결해야 된다는 것은 알았다. 그러나 for문을 끝부터 돌리기에는 번거로워서 고민하다 stack을 사용하는 방법으로 해결하였다. 스택 관리 deliveries, pickups 별로 스택을 선언한다. 여기서 중요한 점은, 가장 먼 집이 택배나 회수할 것이 아무것도 없으면 안된다는 것이다. 왜냐하면,..

Tech/Algorithm 2023.02.13

[Git] 자주쓰는 git 명령어 모음 (지속적으로 추가 예정)

0. 깃허브 연결 # git 초기화 $ git init # origin 추가 (repository git 주소 입력) $ git remote add origin [git주소] # clone 할 경우 $ git clone [git주소] 1. 변경 내용 원격 branch로 푸시하기 # 전체 변경사항 추가 $ git add . # 변경 상태 확인 $ git status # 커밋메시지 남겨 커밋 $ git commit -m "[커밋 메시지]" # 원격 브랜치에 푸시 $ git push origin [원격 브랜치 이름] 2. 원격 브랜치에서 로컬로 가져와 해당 브랜치로 체크아웃하기 # 원격 브랜치 목록 업데이트 $ git remote update # 원격 브랜치 로컬에 추가 && 이동 # 원격 브랜치가 origi..

Tech/Git 2023.02.08

[Spring, Redis] AWS EC2환경 spring boot에서 redis 연결방법, 연결 안될때 (connection refused)

로컬에서는 redis 서버를 키고 스프링 부트 서버 실행 후 api 테스트를 진행하면 정상 작동하나, ec2환경에서는 정상작동하지 않았다. 결론적으로 redis 외부 접속을 허용해주어야 한다. 아래 전체 과정을 참고하면 된다! 0. ec2 환경에 redis 설치 1. 스프링 application.properties (또는 yml)에서 host 주소 변경 // application.properties // 로컬호스트의 경우 spring.redis.host=localhost spring.redis.host= [AWS EC2 엔드포인트로 변경] spring.redis.port=6379 2. Redis.conf 설정 변경 기존 주소를 모든 외부 호스트에서 접속 가능하도록 변경한다. $ vi /etc/redis/..

Tech/Server 2023.02.08

[BOJ] 백준 3190 뱀 c++ (구현, deque)

문제 출처 : https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 처음에 단순 구현으로 생각했으나, 문제를 보면 꼬리를 제거해야 하는 경우도 있고 머리 부분을 추가하는 경우도 있다. 즉 처음과 끝을 push, pop할 수 있어야 했기에 deque을 사용하기로 하였다. 방향 회전시키기 단순 구현이라 특별한 로직같은건 없으나 방향을 90도 회전 시켜야 할 경우에는 다음과 같이 풀이하였다. 인덱스를 접근할 dx, dy 배열을 선언한다. (상 우 하 좌 순..

Tech/Algorithm 2023.02.03

[BOJ] 백준 2138 전구와 스위치 c++ (그리디)

문제 출처 : https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 풀이 이 문제는 아이디어가 잘 떠오르지 않는 문제였다.. 다른 여러 풀이를 참고했다. 현재 전구를 반복문을 돌린다. i 기준일때 i-1번째까지 정답과 일치하면 넘어간다. 이유는 i+1번째로 기준이 넘어가면 i-1은 더이상 영향을 받지 않기 때문이다. i-1번째가 일치하지 않는다면 스위치를 누른다.(뒤집기) 이 경우를 그냥 시작하는 경우 / 가장 처음에 뒤..

Tech/Algorithm 2023.01.30

[BOJ] 백준 1197 최소 스패닝 트리 c++ (크루스칼)

문제 출처 : https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 최소 스패닝 트리(최소 신장 트리) 우선 스패닝 트리는 그래프의 모든 정점을 잇고, 사이클이 없는 트리이다. 정점이 V개면 정점을 연결하는 간선은 V-1개이다. 최소 스패닝 트리는 간선의 가중치 합이 최소가 되는 스패닝 트리이다. 최소 스패닝 트리를 구하는 대표적인 알고리즘은 크루스칼(Kruskal), 프림(Prim) 알고리즘이 있다...

Tech/Algorithm 2023.01.29
728x90
반응형