본문 바로가기

문제풀이54

[C++] [백준 3052] 나머지 (pps 4-3) 문제 풀기 전 생각 : /* 어려운 문제는 아니다. 세트 컨테이너를 사용하면 쉽게 풀수 있다 세트 컨테이너는 중복을 허용하지 않기 때문에 입력받은 숫자를 42로 나눈 나머지값을 세트에 insert하면 중복은 받지 않는다. 그런 다음 세트의 사이즈를 출력하면 우리가 원하는 답을 구할 수 있다. */ #include #include using namespace std; int main() { int n; set s; for(int i=0 ; i> n; s.insert(n%42); } cout 0) a[n%42]=1; for(auto n:a) s+=n; printf("%d",s); } 나는 컨테이너를 사용했지만 위의 코드에선 42칸짜리 배열을 사용했다 저 방법도 나쁘지 않은것 같다. 2021. 7. 17.
[C++] [백준 10757] 큰 수 A+B (pps 4-2) 문제 풀기 전 생각 : /* 우선 string 변수에 숫자 두개를 저장한다. 두 숫자가 길이가 다를수 있으니 더 짧은 숫자 앞에 '0'들을 추가해 길이를 맞춰준다. 그리고 두 숫자를 더할때 overflow가 발생할 수 있으니 두 숫자 모두 앞에 '0'을 더한다. 그리고 맨 뒤에서부터 a+b+overflow 를 한다. a는 첫번째 숫자의 i번째 char이다. b는 두번째 숫자의 i번째 char이다. 만약 오버플로우가 발생하면 overflow라는 변수에 1을 넣고 a+b+overflow-10+'0'을 tmp변수에 넣는다. 발생하지 않으면 0을 넣고 a+b+overflow+'0'를 tmp변수에 넣는다. 그렇게 모든 작업이 끝난후 tmp변수를 리버스 시킨다. 리버스 후 tmp 변수의 첫번째 char가 '0'이라.. 2021. 7. 17.
[C++] [백준 2953] 나는 요리사다 (pps 4-1) 문제 풀기 전 생각 : /* 참가자들의 점수는 총 다섯줄에 걸쳐서 다섯번 입력된다. 우리는 가장 높은 점수를 받은 참가자의 번호와 점수의 합을 저장했다 출력하면 된다. 반복문으로 입력을 받을때마다 판별하면 된다. 간단한 문제이다. */ #include using namespace std; int main() { int n,sum=0,max=0,max_i=0; for(int i=0 ; i n; sum += n; } if(sum > max) { max = sum; max_i = i+1; } } cout 2021. 7. 17.
[C++] [백준 5598] 카이사르 암호 (pps 3-3) 문제 풀기 전 생각 : 평소의 나였으면 문자열을 입력받은후 반복문으로 쪼개 아스키코드 를 활용해 풀었을테지만 3-2 문제를 풀고 난 후 scanf()을 한개씩 받고 바로바로 판별해서 출력하기로 했다. #include using namespace std; int main(){ string s; cin >> s; for (size_t i = 0; i < s.length(); i++) { if(s[i] == 'A') s[i] = 'X'; else if(s[i] == 'B') s[i] = 'Y'; else if(s[i] == 'C') s[i] = 'Z'; else s[i] = s[i] - 3; } cout 2021. 7. 13.
[C++] [백준 11721] 열 개씩 끊어 출력하기 (pps 3-2) d 문제 풀기 전 생각 : 문자열을 입력받은후 char 기준으로 한글자씩 출력하며 10의 배수마다 줄바꿈을 하는 방법 #include using namespace std; int main() { string s; cin >> s; for(int i=0 ; i 2021. 7. 13.
2-8. IBM 빼기 1 (백준 6321) 문제 풀기 전 생각 : 입력받을 문자열의 수 만큼 반복하며 매 반복마다 입력받은 문자열의 아스키코드를 1씩 증가시키는 방식을 떠올렸습니다. Z가 나온다면 A로 변환하는것을 조건문을 통해 구현하고 출력하도록 했습니다. 어려운 문제는 아닌듯 합니다. #include using namespace std; int main() { int n; string s; cin >> n; for(int i=0 ; i > s; cout 2021. 7. 8.