본문 바로가기

알고리즘47

[C++][leetcode] happy numbers :: seoftware 문제 접근방법 무한루프에 빠지게 되는 조건이 뭘까? 똑같은 숫자가 또 나오면 무한루프에 빠진다! 따라서, 루프를 돌 때마다 나오는 결과값을 저장해 놨다가 또 나오는지 확인하는 과정이 필요하다. 소스코드 class Solution { bool isVisited(int x, vector&arr){ if(arr.empty()) return false; for(int i : arr){ if(x==i) return true; } return false; } public: bool isHappy(int n) { vector arr; int m = n; int cur; while(1){ cur = 0; while(m>0){ cur += (m%10)*(m%10); m /= 10; } if(cur == 1) return.. 2020. 4. 3.
[C++] 백준 1920번 수 찾기 :: seoftware 문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. www.acmicpc.net 소스코드 #include #include using namespace std; int arrA[100000]; int arrB[100000]; int result[100000]; int main(void) { //input int N, M; scanf("%d".. 2020. 3. 28.
[C++] 백준 1436번 영화감독 숌 :: seoftware 문제 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조 www.acmicpc.net 소스코드 #include using namespace std; int main(void) { int N; cin >> N; in.. 2020. 3. 26.
[C++] 백준 1874번 스택 수열 :: seoftware 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 소스코드 #include #include using namespace std; int seq[100000]; char result[200000]; int main(void) { //input int N; cin >> N; for (int n = 0; n < N; n++) { scanf("%d", &seq[n]).. 2020. 3. 18.
[C++] 백준 2231번 분해합 :: seoftware 문제 https://www.acmicpc.net/problem/2231 2231번: 분해합 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그 www.acmicpc.net 소스코드 #include #include using namespace std; int main(void) { int N; cin >>.. 2020. 3. 14.
[C++] 백준 1181번 단어 정렬 :: seoftware 문제 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 소스코드 #include #include #include #include using namespace std; bool compare(string x, string y) { if (x.length() == y.length()) { return x >.. 2020. 3. 13.
[C++] 백준 11053번 가장 긴 증가하는 부분 수열 :: seoftware 문제 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. www.acmicpc.net 소스코드 #include using namespace std; int arr[1001]; int dp[1001]; int main(void) { //input int N; cin >> N; for (int i = 1; i > arr[i]; } //perform int answer = 0; for.. 2020. 3. 13.
[C++] 백준 10250번 ACM 호텔 :: seoftware 문제 https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정 www.acmicpc.net 소스코드 #include using namespace std; int main(void) { int T; cin >> T; .. 2020. 3. 13.
[C++] 백준 10814번 나이순 정렬 :: seoftware 문제 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. www.acmicpc.net 소스코드 #include #include #include #include using namespace std; bool compare(pair a, pair b) { if (a.first > N; vector members(N); for (int i = .. 2020. 3. 13.