전체 글(155)
-
[프로그래머스] 가장 큰 수 | C++
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자들을 문자열로 조합한 후 가장 큰 값을 반환하는 문제이다. 풀이 전략 사용자 정의로 비교함수를 정의한다. 상세 1) numbers의 숫자들을 문자로 변환 후, vector store에 저장해둔다. 더보기 string solution(vector numbers) { string answer = ""; vector store; for(int number : numbers) store.push_back(to_string(number)); } 2) store에 저장된 문자열들을 정렬할 것이다. 정렬기준은 직..
2023.01.12 -
[프로그래머스] 모음사전 | C++
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 단어가 사전 순으로 몇 번째인지 구하는 문제였다. 나의 풀이 전략 DFS로 푼다. 상세 1. DFS 함수의 이름은 makeCombination()이다. 우리가 조합한 단어는 comb, 문제에서 주어진 단어는 dest, 재귀깊이는 depth로 설정한다. 더보기 void makeCombination(string comb, string dest, int depth) // DFS { } 2. 우리가 이용할 모음은 정해져있다. 상수 문자 배열로 고정해주자. 더보기 // 전역 const char vowSet..
2023.01.12 -
[프로그래머스] 피로도 | C++
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 전략 방문할 던전을 나열하는 방법은 두가지로 보인다. 1) DFS로 풀어본다. 2) next_permutation()을 이용해본다. (여기서 설명할 방법) DFS로 한다면, 방문체크가 필요할 것이다. 그러면 풀이자들은 던전에 방문했는지를 체킹하기 위해 별도의 선형 자료구조를 구성해야 한다. 그런데, DFS로 함수 인수를 구성하기, 방문 체킹-언체킹, 제약조건에 따르기 등 내가 직접 방문순서를 관리하는건 솔직히 귀찮고 힘들기도 하다. 나는 그래서 2번째로 풀때는 next_permutation()..
2023.01.11 -
1) 프로젝트 구성 및 의존성 추가
루트 경로로 진입하면 다음 화면이 나오도록 SecurityController를 생성하자. @RestController public class SecurityController { @GetMapping("/") public String index() { return "home"; } } 이 상태에서 루트로 접속하면 화면에 home이 찍힐 것이다. 이제 보안 설정을 해보자. 먼저 spring-boot-starter-sequrity 의존성을 주입해주자. org.springframework.boot spring-boot-starter-security 그리고 루트에 다시 접속해보면... 위와 같이 로그인을 요구한다. 기본적으로 제공되는 계정은 Username은 user, Password는 서버 기동시 콘솔에 랜덤..
2023.01.08 -
[프로그래머스] 소수 찾기 | C++
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열로 주어진 숫자들을 조합하여 그중 소수를 찾아내는 문제이다. 나의 풀이 전략 DFS로 완전탐색하여 푼다. 상세 1. 우선 소수인지 아닌지 판별하는 함수 isPrime()을 생성한다. 소수라면 1을 반환하도록 했다. 더보기 int isPrime(int n) { if (n == 0 || n == 1) return 0; int squareRoot = sqrt(n); // cmath 라이브러리 for (int i = 2; i 0) numSet.insert(stoi(combined)); } 5. origin..
2023.01.07 -
[프로그래머스] 2 x n 타일링 | C++
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2 x 1의 타일을 가지고 2 x n의 바닥을 채우는 문제이다. 나의 풀이 전략 동적 계획법으로 푼다. 상세 바닥이 2 x 1이라면, 채우는 경우의 수는 1이다. 바닥이 2 x 2이라면, 채우는 경우의 수는 2이다. 이제 이 두 가지 크기의 바닥을 기반으로 점화식을 세울 수 있다. 크기가 2 x n인 바닥을 채우는 경우의 수를 DP[n]이라 하자. 바닥이 2 x n이라면, 1) 먼저 2 x 1만큼 맨 오른쪽을 채운다. 그리고 나머지 왼쪽을 채운다. 1)의 경우의 수는 바로 DP[n - 1]과 같다. 2)..
2023.01.03