[BOJ/백준/C++] 1934번 최소공배수
·
Coding Test/Baekjoon
1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 📌 접근 방법 ⚡ 최소 공배수 구하는 공식 int LCM(int a, int b){ return a*b/GCD(a,b); } a * b / 최대 공약수를 이용하면 구할 수 있음 ⚡ 최대 공약수 구하는 공식 int GCD(int a, int b){ int c = a%b; while(c!=0){ a=b; b=c; c=a%b; } return b; } 유클리드 호제법을 이용해서 구함 유클리드 호제법 : 두 정수 a, b에 대해, a를 b로 나눈 나..
[BOJ/백준/C++] 7785번 회사에 있는 사람
·
Coding Test/Baekjoon
7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 📌 접근 방법 map을 활용해서 출입 기록을 담는다 set에 이름을 담고 사전 역순으로 정렬시켜둔다 정렬된 이름으로 map에서 찾아서 회사에 남아있으면 출력한다 ✅ Pass Code #include #include #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NU..
[BOJ/백준/C++] 11478번 서로 다른 부분 문자열의 개수
·
Coding Test/Baekjoon
11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 📌 접근 방법 ⚡ ababc 입력 i = 0일 때 : a, ab, aba, abab, ababc i = 1일 때 : b, ba, bab, babc i = 2일 때 : a, ab, abc i = 3일 때 : b, bc i = 4일 때 : c ➡ map 에 넣고 bool로 이미 있는 조합인지 아닌지 체크하며 카운팅 ✅ Pass Code #include #include #include #include #include #include #include #include using namespace std; int main() { ios::sy..
[BOJ/백준/C++] 18870번 좌표 압축
·
Coding Test/Baekjoon
18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 📌 접근 방법 ⚡ 좌표 압축 : 해당 좌표의 값을 그 값보다 작은 좌표값들의 개수로 대체 N 개의 숫자를 입력받고 오름차순으로 정렬해준다 중복을 제거해주고 뒤에 필요없는 값들은 제거 해줌 (중복제거를 한 후 벡터 앞부터 다시 채운거라 뒤에는 쓰레기 값들이 남아있음) lower_bound 함수를 이용해서 찾는 값보다 같거나 큰 값을 리턴해줌. ✔ unique(b, e) 헤더파일 사용 vector의 begin, en..