https://programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 구현만 잘하면 간단한 문제이다. 일단 주어진 벡터가 string형으로 되어있으므로, char 이중배열에 반복문을 돌려 넣어준다. 그리고 사람(P)의 수를 세고, bfs문을 돌려 true 횟수가 사람의 횟수와 같으면 다 거리두기를 잘 지키고 있다는 뜻이다. bfs 함수에서 문제에선 거리가 2이하인데, 3이하로 설정한 이유는 처음에 움직이지 않았는데 dist를 1로 설정해주었기 때문이다. 0..
분류 전체보기
https://programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 최대공약수와 최소공배수의 기초 문제이다. 여러 개의 최소공배수를 구하려면 두 개의 최소공배수를 구한 것에 다음 수를 넣으면 된다. #include #include using namespace std; int gcd(int a, int b){ while(b != 0){ int r = a % b; a = b; b = r; } return a; } int lcm(int a, int b){ return a..
https://programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 다이나믹 프로그래밍의 기초 문제이다. 앞의 두 수를 더해주고, 1234567로 나눈 나머지의 값을 리턴하면 된다. #include #include using namespace std; int dp[100001]; int fibo(int n){ dp[0] = 0; dp[1] = 1; for(int i = 2; i
https://programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 그리디의 중요한 문제인 것 같다. #include #include using namespace std; string solution(string number, int k) { string answer = ""; int idx = 0; for(int i = 0; i < number.size() - k; i++){ int num = 0; for(int j = idx; j
https://programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 가장 큰 정사각형 문제는 오른쪽 아래의 숫자를 잘 봐야된다. 초기값은 board 0, 0 배열의 값으로 두고, board 배열의 값이 1이 될 때 (i - 1, j), (i, j - 1), (i - 1, j - 1) 이 중에서 가장 작은 값을 찾은 뒤 + 1를 해주면 된다. 가장 큰 값을 찾아 제곱을 해주면 답이다. 풀이 1 #include #include using namespace std; in..
https://programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 익숙해져야 되는 대표적인 구현 문제이다. n = 1일 때는 1, n = 2일 때는 3, n = 3일 때는 6, n = 4일 때는 10이므로 정수 n은 n * (n + 1) / 2 까지 도는 것을 알 수 있다. 만약 다음 방향으로 가는 곳이 0보다 작거나 n보다 크거나 같으면 가면 안 되는 방향이기 때문에 방향을 돌려준다. 또한, 0이 아니라면 이미 방문했다는 뜻이므로 방향을 돌려준다. 반복문이 끝났..
https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 다른 문제와 차이점은 str가 공백일 때도 벡터에 넣어준다는 점이다. 그 이유는 공백문자가 연속해서 나올 수도 있기 때문이다. 일단 처음에 다 소문자로 바꿔준 뒤, 벡터에 넣은 값 인덱스 0값이 소문자라면 대문자로 바꿔준다. 그리고 마지막 인덱스를 제외하고 뒷부분에 공백을 붙여준다. #include #include using namespace std; string solution(str..
https://programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 bfs의 가장 기본적인 문제이다. 가장 큰 영역을 구하고 몇 개의 영역이 있는지 리턴하면 되는 문제이다. #include #include using namespace std; int c[101][101]; int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, -1, 0, 1}; int bfs(int x, int y, vector picture, int num){ queue q;..
https://programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 최댓값과 최솟값을 구하는 문제인데 문자열로 주어진다. 그러므로 공백이 나올 때마다 int형 벡터에 넣고, 숫자들을 오름차순으로 정렬해준다. 그럼 v[0]일때 최솟값이 나오고, v[v.size() - 1]일때 최댓값이 나오게 된다. 풀이 1 #include #include using namespace std; int solution(vector A, vector B) { int answer..
https://programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 이 문제는 최댓값과 최솟값을 구하는 문제인데 문자열로 주어진다. 그러므로 공백이 나올 때마다 int형 벡터에 넣고, 숫자들을 오름차순으로 정렬해준다. 그럼 v[0]일때 최솟값이 나오고, v[v.size() - 1]일때 최댓값이 나오게 된다. 풀이 1 #include #include #include using namespace std; string solution(string s) { string an..