본문 바로가기
728x90

BOJ36

[백준]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.
[백준]2501번 약수구하기 c/c++ 문제 https://www.acmicpc.net/problem/2501 나의 문제해결 순서 1. n(자연수)와 k(n의 약수중 k번째로 작은수)를 입력받는다. 2. 약수 개수를 세어줄 정수형 변수 cnt를 0으로 초기화 해준다. 3. 약수를 a배열에 차례대로 저장하기위해 크기가 10000인 정수형 배열을 선언해준다. (n이 1이상 10000이하이기 때문에 약수의 개수가 최대 10000개가 될 수 있기때문) 4. a배열의 인덱스값을 나타내줄 j를 0으로 초기화해준다. 5. 입력해준 n을 1부터 n까지 for문을 돌린다. 6. (for문을 돌면서 1~n까지 증가하는)i로 나누었을때 0이되면 i가 n의 약수가 되기 때문에 약수를 구하게 되면 7. a배열에 약수를 저장해준다. 8. cnt와 j를 증가시켜준다. .. 2022. 6. 25.
[백준]2309번 일곱 난쟁이 c/c++ 문제 https://www.acmicpc.net/problem/2309 이 문제는 다른분의 코드를 참고하여 작성했다. 막혔던 부분 9명 난쟁이의 키를 모두 더하고 이중for문을 돌려 100에서 뺀값이 9명중 2명의 합과 같으면 그 원소들을 제외해야한다는 사실은 알았다. 하지만 다른 for문으로 구한 원소를 삭제하는 방법을 생각을 못했다. 간단하게 또 하나의 for문을 만들어서 i나 j가 새로운 for문의 값과 같으면 continue, 아니면 원소를 출력하는 방식으로 구현하면 되는 문제였다. 코드 #include #include using namespace std; int main() { int a[9]; int sum = 0; for (int i = 0; i > a[i]; .. 2022. 6. 25.
[백준]2460번 지능형 기차2 c/c++ 문제 https://www.acmicpc.net/problem/2460 나의 해결방법 현재상태를 status배열에 저장해두었고 out은 내린 사람수 , in은 탄 사람수 i가 0일땐 따로 분리해서 탄사람만의 숫자를 넣어준다. 그 다음역의 상태를 status[i] = status[i-1] + in - out;으로 작성 status배열의 최댓값을 구하면 사람이 젤 많이 타있었던 역의 사람수를 출력 할 수 있다. 코드 #include using namespace std; int main() { int out, in; int status[10]; for (int i = 0; i > out >> in; if (i == 0) { status[0] = in; } else { statu.. 2022. 6. 25.
728x90