[프로그래머스] 두 정수 사이의 합
·
Algorithm/Solution
코딩테스트 연습 - 두 정수 사이의 합 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr 간단한 문제라 생략 #include #include using namespace std; long long solution(int a, int b) { long long answer = 0; long long tmp; if(a>b){ tmp = a; a = b; b = tmp; } for(int i=a;i
[프로그래머스] 위클리 챌린지 2주차 문제 - 상호 평가(C++)
·
Algorithm/Solution
코딩테스트 연습 - 2주차 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 🔎 문제 설명 score라는 보드에 학생들의 상호평가 점수가 주어진다. 각 학생들이 받은 평가의 평균을 구해 기준에 따라 학점을 부여함 만약 자기자신을 평가한 점수가 유일한 최고/최저점이면 그 점수는 제외하고 평균을 구할 때 제외함. 🔎 풀이 과정 생각보다 쫌 헤맸던 문제... 행과 열을 반대로 계산하고 있어서 왜틀렸지?? ..
[프로그래머스] 소수 만들기
·
Algorithm/Solution
코딩테스트 연습 - 소수 만들기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 🔎 문제 설명 숫자 세개를 더해서 소수가 되는 경우의 개수를 구하려고 함. num이라는 배열에 숫자들이 주어지고 서로 다른 3개를 골라 더해 소수가 되는 경우의 수를 리턴 🔎 풀이 과정 소수가 되는 조건 = 1과 자기 자신 이외의 숫자로 나누어지지 않는다. 모든 경우의 수를 다 따져봐야 되므로 완전 탐색으로 풀어야 할 거같다. 반복문을 돌려서 서로다른 3개를 ..
[프로그래머스] 음양 더하기
·
Algorithm/Solution
코딩테스트 연습 - 음양 더하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 🔎 문제 설명 주어진 정수들의 절댓값을 담은 배열과, 부호를 담은 배열이 매개변수로 주어짐. 실제 정수들의 합을 구하는 문제 🔎 풀이 과정 부호가 +면 true, -면 false이므로, 배열의 크기만큼 반복문을 돌리고 만약 true면 answer에 플러스를, false면 마이너스를 해준다. 배열의 최대크기는 1000이므로, int형 범위를 넘어가지 않는다...
[프로그래머스] 위클리 챌린지 1주차 문제 - 부족한 금액 계산하기
·
Algorithm/Solution
코딩테스트 연습 - 1주차 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 2021 8월 첫째주 위클리 문제 🔎 문제 설명 놀이기구의 원래 이용료는 price, n번째 이용하면 원래 이용료의 n배를 받는다. 놀이기구를 count번 타게되면 자신이 가진 금액에서 얼마가 모자라는지 return하는 함수 작성 🔎 풀이 과정 인풋으로 이용료, 가진 금액, 이용 횟수(n)가 주어지므로 가진금액 - 1* 이용료 - 2* 이용료 - .... - - n-1*이용..
[Algorithm] 유니온 파인드(Union-Find) 개념, 코드(C++)
·
Algorithm/Study
1. 유니온 파인드 1) 의미 - 그래프 알고리즘으로 Union(합집합) + Find(찾다)로 '합집합 찾기' 라는 의미를 가지고 있다. - 서로소 집합(Disjoint Set) 이라고 불리기도 한다. - 여러 노드 중 두 노드를 선택하여 같은 그래프에 속해 있는 지 확인하는 알고리즘이다. 2) 연산 - 2가지 연산이 존재한다. ① Find(x) : 원소 𝑥가 속한 부분집합을 찾는다. 보통 𝑥가 속한 부분집합의 대표 원소를 되돌려준다 ② Union(x, y) : 원소 𝑥가 속한 부분집합과 원소 𝑦가 속한 부 분집합의 합집합을 구한다. * 각 부분집합은 트리로 나타낸다. 3) 구현(배열 이용) - 미리 해야할 과정 노드의 개수 만큼 배열을 선언한다. 각 노드의 루트노드를 가르키는 배열을 선언하고, 초기화 ..
[C++] 백준 2644번 촌수계산
·
Algorithm/Solution
2644번: 촌수계산 (acmicpc.net) 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net 난이도 : 실버 2 문제 설명 : 촌수를 구하는 문제였습니다. DFS와 BFS를 이용하여 구할 수있습니다. 코드 설명: DFS함수의 인자로 now, end, num을 받습니다. now와 end는 구하려는 가족의 넘버이며, num은 촌수계산을 위한 변수입니다. dfs를 돌면서, 방문하지 않은 노드면 num에 +1을 해주고 둘이 가족(연결되어있으면)이면 num을 출력합니다. 둘이 다른 가족이면 ans은 0..
[C++] 백준 11724 연결 요소의 개수
·
Algorithm/Solution
11724번: 연결 요소의 개수 (acmicpc.net) 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 난이도 : 실버2 문제 설명 : 연결 요소란, 무방향 그래프에서 적어도 한 개 이상의 경로로 연결된 정점들로 구성된 종속 그래프를 이야기합니다. 예를 들어, 아래와 같은 그림이 있을 때, 연결 요소의 개수는 2개입니다. (각각의 떨어져 있는 그래프가 2개!) 풀이 과정 : DFS나 BFS로 풀 수있는 문제입니다. 이 문제를 풀기 전에 dfs와 b..
[C++] 백준 8958 OX퀴즈
·
Algorithm/Solution
8958번: OX퀴즈 (acmicpc.net) 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 난이도 : 브론즈2 과정 : 연속된 O의 개수들을 더하는 문제였습니다. 연속된 O의 개수를 담는 변수 CNT와, CNT를 더하는 ANS 변수를 선언하여 반복문을 이용해 답을 구하였습니다. #include #include using namespace std; int n; int main() { cin >> n; string arr; for (int i = 0; i > ..