전체 글

창의의 개발블로그입니다.
· 백준
22856번: 트리 순회 노드가 $N$개인 이진 트리가 있다. 트리를 중위 순회와 유사하게 순회하려고 한다. 이를 유사 중위 순회라고 하자. 순회의 시작은 트리의 루트이고 순회의 끝은 중위 순회할 때 마지막 노드이다. www.acmicpc.net 문제 유사 중위 순회를 하면서 이동한 총 횟수를 출력한다. 풀이 유사 중위 순회를 하면서 이동한 총 횟수를 출력해야 하는데, 여기서 주의할 점은 유사 중위 순회의 종료지점이 일반 중위 순회의 종료 지점일 경우에 종료해야 한다는 점이다. 유사 중위 순회의 종료 지점이 모든 노드를 방문했을 경우로 착각해서 여기서 많이 당황했다. 따라서 문제를 잘 읽어보길 바란다. 📌 값 입력 StringTokenizer st; for(int i=1; i
· 백준
5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 문제 이진 검색 트리를 전위 순회한 결과가 주어졌을 때, 이 트리를 후위 순회한 결과를 구하는 프로그램을 작성하시오. 풀이 이진 탐색 트리의 전위 순회한 결과가 주어졌을 때, 트리를 후위 순회해야 하기 때문에 먼저 전위순회한 결과를 이진 탐색트리로 바꿔주었고 바꾼 트리를 다시 후위 순회하여 결과를 출력하였습니다. 📌 값 입력받기 String value = ""; while (true){ value = br.readLine(); if(value == ..
· Spring
서론 지난 포스트에 이어 스프링 프로젝트에서 리액트-스프링 부트간의 REST API를 통한 카카오 로그인과 카카오 회원가입 구현에 대해 소개하겠다. 본론 카카오 회원가입 카카오 서버로부터 정보를 받아와서 서비스에 정보를 등록해두고 회원가입 처리를 해준다. 프론트에서 인가 코드를 받아 서버로 전달 프론트 과정 설명으로 다루겠다. 프론트엔드에서 인가 코드를 발급받고 redirect uri로 리다이렉트되었을 때, 쿼리 파라미터에 담긴 code를 서버로 전달해주어야 한다. 위의 api를 통해 인가 코드를 발급받는다. 위의 3가지 쿼리 파라미터를 작성하고 GET 요청을 보내면 카카오 로그인 화면이 나타나고 로그인을 완료하면 설정한 redirect uri로 리다이렉트된다. redirect uri는 내 애플리케이션 ..
· Spring
개요 프로젝트를 진행하면서 소셜 로그인을 통해서 간편 로그인을 만들었다. 이번 포스팅에서 카카오 로그인을 React - Spring Boot간의 REST API로 구현하는 방법에 대해서 소개하겠다. 본론 카카오 developers에 정보 등록하기 먼저 카카오 developers에 가입해서 현재 프로젝트 애플리케이션을 등록해주어야한다. Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 카카오 developer에 로그인해준 후 내 애플리케이션으로 들어간다. 그 후 애플리케이션 추가하기 버튼을 눌러 애플리케이션에 대한 정보들을 기입해준다. 이때 기입한 ..
· AWS
개요 프로젝트를 진행하던 도중 MAC OS에서 AWS에 접속하려고 했더니 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!이 발생해서 접속이 안된다. 본론 위의 메시지를 번역해보면 “누군가가 나쁜짓을 할 수도 있습니다! 지금 누군가가 당신을 도청하고 있을 수 있습니다. (MITM attack) 호스트 키가 방금 변경된 것일 수도 있습니다.” 이렇게 들어서는 그냥 누군가가 통신을 도청하고 있을 수 있다는 뜻 같다. 이 오류는 SSH 클라이언트가 이전에 연결한 호스트와 현재 연결하려는 호스트의 식별자가 다른 것을 감지했을 때 발생합니다. 이전에 ssh 연결을 했던 호스트와 다른 호스트에 같은 키를 사용하여 연결하려고 할때 발생하는 것 같습니다. 이전 EC2를 제거하고 새..
· Spring
개요 intellij에서 javadoc으로 문서를 만들어주는 기능이 있다는 것을 발견해서 프로젝트를 javadoc으로 만들어보았다!. 본론 기본적인 개념 javadoc 주석을 달아놓은 메서드와 클래스들을 문서로 자동으로 만들어준다. /** * 유저의 이메일이 데이터베이스에 존재하는지 체크 * @param email 체크하려는 이메일 * @return true 존재하는 이메일, false 존재하지 않는 이메일 * */ private void emailDuplicateCheck(String email){ if(userDAO.existUserByEmail(email)){ throw new EmailDuplicateException(); } } 위와 같이 /** 내용 */ 형태로 작성한 주석을 javadoc이라..
· 백준
11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 풀이 이 문제는 DP 문제로 주어진 직사각형 크기를 가득 채우는 방법의 수를 물어본다. 따라서 작은 크기의 사각형부터 하나씩 방법들을 작성하면서 어떤 규칙이 있는지 생각해보고 점화식을 만들었다. n = 1, 일때 방법은 1가지 n = 2, 일때 방법은 2가지 n = 3, 일때 방법은 3가지 n = 4, 일때 방법은 5가지 n = 5, 일때 방법은 8가지 위의 결과를 보고 유추해보다가..
· 백준
2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 문제 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. N(1 ≤ N ≤ 90)이 주어졌을 때, N자리 이친수의 개수를 구하는 프로그램을 작성하시오. 풀이 이친수의 첫 자리수는 1이 반드시 와야하기..
창e
창의