본문 바로가기
반응형

C++162

[프로그래머스] 방문 길이 (C++) 문제 링크 코딩하기 전 생각하기 /* 이동 기록을 set에 저장하자. 처음 좌표를 0, 0으로 설정하자. dirs를 순회하자. 경계를 넘지 않고 이동했으면 원래좌표 + 현재좌표의 값을 set에 저장한다. set의 크기를 반환한다. */ 코드 #include #include using namespace std; int solution(string dirs) { int x = 0, y = 0; unordered_set s; string str1, str2; for ( auto c : dirs ) { int tmp_x = x; int tmp_y = y; bool go = false; if ( c == 'U' ) { if ( y < 5 ) { y++; go = true; } } if ( c == 'D' ) { .. 2021. 7. 24.
[프로그래머스] 약수의 개수와 덧셈 (C++) 문제 링크 코딩하기 전 생각하기 /* left부터 right까지 반복한다. (i) 1부터 i까지 반복한다. (j) i를 j로 나눴을 때 나머지가 0이면 count에 1를 더한다. count가 짝수이면 answer에 i을 더하고 아니라면 answer에 i를 뺀다. answer를 반환한다. */ 코드 #include using namespace std; int solution(int left, int right) { int answer = 0; for ( int i = left; i 2021. 7. 23.
[프로그래머스] 소수 만들기 (C++) 문제 링크 코딩하기 전 생각하기 /* 소수인지를 판별하는 함수를 선언하자. 2부터 해당 숫자가 되기 전까지의 수를 나누는데 나누어 떨어지는 수가 있으면 false를 반환한다. 3중 배열을 통해 세 개의 수를 선택하는 모든 경우의 수를 확인한다. 세 수를 더했을 때 소수가 나오면 count에 1을 더한다. count를 반환한다. */ 코드 #include using namespace std; bool is_prime(int n) { for ( int i = 2; i < n; i++ ) { if ( n % i == 0 ) return false; } return true; } int solution(vector nums) { int count = 0; for ( int i = 0; i < nums.size(.. 2021. 7. 23.
[프로그래머스] 하샤드 수 (C++) 문제 링크 코딩하기 전 생각하기 /* 숫자를 문자열로 변환 후 순회하여 자리 수의 합을 구한다. 숫자가 자리 수의 합으로 나누어 떨어지면 true를, 아니라면 false를 반환한다. */ 코드 #include using namespace std; bool solution(int x) { int sum = 0; for ( auto c : to_string(x) ) sum += c - '0'; if ( x % sum == 0 ) return true; return false; } 느낀점 딱히 없다. (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다. 댓글 환영합니다! 2021. 7. 23.
[백준/BOJ] 16435번 - 스네이크버드 (C++) 문제 링크 코딩하기 전 생각하기 /* 과일의 개수와, 처음 길이, 과일 벡터를 입력받는다. 과일 벡터를 오름차순으로 정렬한다. 과일의 개수만큼 반복한다. 과일이 스네이크버드의 길이보다 작거나 같으면, 스네이크버드의 길이에 1을 더한다. 아니라면, break 한다. 스네이크버드의 길이를 출력한다. */ 코드 #include #include using namespace std; int main() { int n, l, a; vector h; cin >> n >> l; for ( int i = 0; i > a; h.push_back(a); } sort(h.begin(), h.end()); for ( int i = 0; i = h[i] ) l.. 2021. 7. 23.
[백준/BOJ] 1541번 - 잃어버린 괄호 (C++) 문제 링크 코딩하기 전 생각하기 /* '-'가 나오는 순간부터 다음 나오는 숫자들은 모두 뺄셈을 해주자. 기본값이 '+'인 연산자 변수를 선언하자. result 변수를 선언한다. 문자열을 입력받고 문자열을 순회한다. 문자가 숫자이면 숫자 변수에 저장한다. 문자가 숫자가 아닐 때, 연산자가 '+'이면 result에 숫자를 더한다. 연산자가 '-'이면 result에 숫자를 뺀다. 문자가 '-'이면 연산자를 '-'로 저장한다. result를 출력한다. */ 코드 #include #include using namespace std; int main() { string s; cin >> s; int result = 0, n = 0; char op = '+'; for ( auto c : s ) { if ( c >=.. 2021. 7. 23.
[백준/BOJ] 11047번 - 동전 0 (C++) 문제 링크 코딩하기 전 생각하기 /* n과 k, 동전 벡터를 입력받는다. k가 0이 될 때 까지 다음을 반복한다. 동전 벡터의 뒤에서 부터 시작하여서 동전이 k보다 작거나 같으면 그 동전을 쓰고 count에 1을 더해준다. count를 출력한다. */ 코드 #include #include using namespace std; int main() { int n, k, a; cin >> n >> k; int count = 0; vector v; for ( int i = 0; i > a; v.push_back(a); } while ( k > 0 ) { for ( int i = v.size() - 1; i >= 0; i-- ) { if ( v[i] 2021. 7. 20.
[백준/BOJ] 1181번 - 단어 정렬 (C++) 문제 링크 코딩하기 전 생각하기 /* 중복을 허용하지 않고 정렬하면서 값을 추가할 수 있는 set을 선언하자. n만큼 단어를 입력받고 set에 추가한다. set을 출력한다. */ 코드 #include #include using namespace std; bool comp(string a, string b) { if ( a.length() != b.length() ) return a.length() > n; set dict(comp); string s; for ( int i = 0; i > s; dict.insert(s); } for ( auto i : dict ) cout 2021. 7. 20.
[백준/BOJ] 3040번 - 백설 공주와 일곱 난쟁이 (C++) 문제 링크 코딩하기 전 생각하기 /* 9개의 정수를 입력받는다. 2중배열을 이용해서 숫자 두개를 뺐을 때 합이 100이 되는 경우의 수를 찾는다. */ 코드 #include #include using namespace std; int main() { int a[9]; for ( int i = 0; i > a[i]; for ( int i = 0; i < 9; i++ ) { for ( int j = 0; j < 9; j++ ) { if ( i == j ) continue; int sum = 0; for ( int k = 0; k < 9; k++ ) { if ( k == i || k == j ) continue; sum += a[k]; } if ( sum == 100 ) { for.. 2021. 7. 18.
[백준/BOJ] 15552번 - 빠른 A+B (C++) 문제 링크 코딩하기 전 생각하기 /* ios::sync_with_stdio(0)과 cin.tie(0)을 적용해준다. t을 입력받고 t만큼 반복한다. a, b를 입력받고 a + b를 출력한다. */ 코드 #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int t, a, b; cin >> t; for ( int i = 0; i > a >> b; cout 2021. 7. 17.
반응형