본문 바로가기
728x90

PS35

[백준]10808번 알파벳 개수 c/c++ 문제 https://www.acmicpc.net/problem/10808 나의 해결방법 각 알파벳 위치를 구해 배열에 저장하는 방법을 사용했다. 다른 사람들의 코드를 보니 대부분 비슷하게 푼 것 같다. 코드 #include using namespace std; int main() { string s; cin >> s; int a[26] = { 0 }; //각 원소 0으로 초기화 for (int i = 0; i < s.size(); i++) { a[s[i] - &#39;a&#39;]++; //알파벳 위치를 구해 배열에 저장 } for (int i = 0; i < 26; i++) { cout 2022. 6. 25.
[백준]1292번 쉽게 푸는 문제 c/c++ 문제 https://www.acmicpc.net/problem/1292 "하지만 동호는 현재 더 어려운 문제를 푸느라 바쁘기에 우리가 동호를 도와주자" 이거 킹받네... 나의 해결방법 1, 2, 2, 3, 3, 3, 4, 4, 4, 4... 수열을 배열에 저장하여 a번째 원소부터 b번째 원소까지 더한 합을 출력해주는 방식을 사용하였다. 이러한 형태의 수열을 저장하는 방법을 다뤄본적이 없어서 생소했다. 2중 for문을 사용하여 하나는 원소역할을 하고, 나머지 하나는 그 원소를 반복하여 몇번 출력할 것인지를 나타낸다. 코드 #include using namespace std; int main() { int a, b; cin >> a >> b; int n[1000]; int cnt = 0; for (int i.. 2022. 6. 25.
[백준]1789번 수들의 합 c/c++ 문제 https://www.acmicpc.net/problem/1789 나의 해결방법 자연수 n이 만약에 200이라고 주어지면 서로 다른 x개의 자연수의 합이 n일때 x의 최대는 1부터 차례대로 더해갔을때이다. 1+2+3+...+19=190, 1+2+3+...+20=210 이므로 1+2+3+...+29=200이되므로 x의 값은 19가 된다. 즉, n값을 초과했을때 count값을 하나줄인다. 코드 #include using namespace std; int main() { long long n; cin >> n; long long sum = 0; int i = 1; int cnt = 0; while (1) { sum += i; //1부터 차례대로 더해감 cnt++; //개수 증가 i++; if (sum >.. 2022. 6. 25.
[백준]3460번 이진수 c/c++ 문제 https://www.acmicpc.net/problem/3460 나의 해결방법 1. 2진수값과 테스트케이스 개수를 입력받을 정수형변수 t와 n을 선언해준다. 2. 테스트케이스 개수가 몇개냐에 따라 n을 몇번 입력받느냐 달라질 수 있기 때문에 for문을 테스트케이스개수만큼 돌려서 배열에 저장해준다. 3. cnt는 while문을 도는 횟수?라고 생각하면 되고 2로 나누었을때 1이 되는 경우에 cnt를 공백을 두고 출력해준다.(while문은 n이 0이 아닐때만 돈다) 4. n을 2로 나눈 몫으로 다시 저장해준다. (n=n/2)-> n/=2; 5. cnt값을 늘려주고 마지막에 줄바꿈을 추가해준다. 코드 #include using namespace std; int main() { int t, n[10]; .. 2022. 6. 25.
728x90