본문 바로가기
728x90

nojam13

[백준] 17615. 볼 모으기 <C++> https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주�� www.acmicpc.net 음.. 무언가 규칙이 있을 것 같기는 한데 떠오르지는 않았다... 그래서 정말 단순하게 알고리즘을 생각했다. 파란색들을 왼쪽으로 다 모을 때, 오른쪽으로 모을 때 빨간색들을 왼쪽으로 다 모을 때, 오른쪽으로 모을 때 (코드에서 정말로 배열의 각 방을 스왑하거나 하지는 않는다. 개수를 셀 뿐이다.) 이렇게 네 가지의 경우를 모두 구해 최소값을 구하도록 만들었다. RB.. 2020. 6. 20.
[백준] 9094. 수학적 호기심 <C++> https://www.acmicpc.net/problem/9094 9094번: 수학적 호기심 문제 두 정수 n과 m이 주어졌을 때, 0 < a < b < n인 정수 쌍 (a, b) 중에서 (a2+b2+m)/(ab)가 정수인 쌍의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테 www.acmicpc.net 나누기를 나머지로만 바꾸면 되는 단순한 문제였다. 하지만 나는 바보 같은 짓을 또 했다 . . . . . . 조건만 보고 반복문을 0부터 돌렸다가 에러가 났다. 바보다... 0으로 나눌 생각을 하다니 큰 실수를 했다.. 다음부턴 꼭 조심..! #include using namespace std; int cnt, n, m, t, a, b; int main(.. 2020. 6. 3.
[백준] 9093. 단어 뒤집기 <C++> https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 www.acmicpc.net 처음엔 스택을 쓸까 했는데 굳이 코드만 길어지고 덜 효율적일 것 같아 배열만 이용하였다. #include #include using namespace std; int n, sw; string str; int main() { cin>>n; cin.ignore(); // 버퍼 무시 for(int k=0; k 2020. 6. 3.
[백준] 18883. N M 찍기 <C++> www.acmicpc.net/problem/18883 18883번: N M 찍기 총 N개의 줄을 출력해야 한다. 각 줄에는 M개의 정수를 공백 한 칸으로 구분해 출력해야 한다. 1번 줄에는 1부터 M까지, 2번 줄에는 M+1부터 2×M까지, ..., N번 줄에는 (N-1)×M+1부터 N×M까지 출력해야 www.acmicpc.net 이 문제는 입출력 연습에 좋은 문제인 것 같다. #include using namespace std; int main(){ int n, m, cnt=1; //cnt는 1부터 출력된다. cin>>n>>m; for(int i=0; i 2020. 4. 27.
[백준] 18512. 점프 점프 <C++> https://www.acmicpc.net/problem/18512 18512번: 점프 점프 첫째 줄에 두 사람이 한 번에 멀리뛰기를 하는 거리 X, Y와 시작 지점의 위치 값 P1, P2가 각각 공백을 기준으로 구분되어 자연수로 주어진다. (1 ≤ X, Y, P1, P2 ≤ 100) www.acmicpc.net *내 코드의 전체적인 설명* 10 12 30 8 을 입력받으면 30과 8을 비교 -> 둘이 다르므로 더 작은 녀석을 키워줌. 30과 20을 비교 -> ''' 30과 32를 비교 -> ''' 40과 32를 비교 -> ''' 40과 44를 비교 -> ''' 50과 44를 비교 -> ''' 50과 56을 비교 -> ''' 60과 56을 비교 -> ''' 60과 68을 비교 -> ''' 70과 68을 .. 2020. 4. 24.
[백준] 4344. 평균은 넘겠지 <C++> www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net #include using namespace std; int main(){ cout >a;//2) for(int i=0; i>n;//3) for(int j=0; j>arr[j]; everage+=arr[j]; } everage/=n;//3) for(int j=0; jeverage) cnt++; } percent=cnt*100.0/n;//5) cout 2020. 4. 17.
[백준] 17608. 막대기 <C++> Olympiad > 한국정보올림피아드 > KOI 2019 1차대회 > 초등부 1번 https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 어렵지 않았던 문제다. 약간 입체적으로 생각해볼 문제? 막대기를 오른쪽에서 볼 때 각각의 막대기 앞에 자신보다 큰 것이 있다면 보이지 않는다. 오른쪽에서 시작하여 왼쪽으로 가며 큰 값을 기억하고, 만약 기억해둔 큰 값보다 자신이 크다면 막대기는 보인다. 큰 값을 기억하며 개수도 세주는 방법이다. #include using.. 2020. 4. 16.
[백준] 1157. 단어 공부 <C++> www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net #include #include using namespace std; int main() { string c; char ch; int arr[27]={0,}, max1=0, max2=0, idx1, idx2; cin>>c; for(int i=0; c[i]!='\0'; i++) //1) { if(c[i]>=97) //대문자, 소문자를 알파벳의 개수를 세주는 배열에 집어넣는다 2) arr[c[i]-97]++; else arr[c[i]-65]++; .. 2020. 4. 15.
[백준] 14563. 완전수 <C++> www.acmicpc.net/problem/14563 14563번: 완전수 어떠한 자연수 N에 대해서 N을 제외한 약수(진약수)의 합이 N이 되는 자연수를 완전수라고 한다. 예를 들어, 6의 약수는 1, 2, 3, 6인데 1+2+3은 6이기 때문에 완전수이다. 또 진약수의 합이 자기 자신 www.acmicpc.net #include using namespace std; int main() { int t, n, sum=0; cin>>t; for(int i=0; i>n; for(int j=1; j 2020. 4. 14.
728x90