티스토리 뷰

Algorithm/BOJ

백준 3062번 C++

poopooreum 2023. 8. 17. 13:25
반응형
백준 3062번 수 뒤집기

https://www.acmicpc.net/problem/3062

3062번: 수 뒤집기

수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하는 프로그램을 작성하시오.

www.acmicpc.net



정답 코드

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstring>
using namespace std;
int main() {
	char a[8];
	char b[8] = { 0, };
	char c[8] = { 0, };
	char d[8] = { 0, };
	int n;
	cin >> n;
	int index=0;
	for (int x = 0; x < n; x++) {
		cin >> a;
		strcpy(b, a);
		for (int x = 0; x < strlen(a) / 2; x++)
			swap(a[x], a[strlen(a) - x - 1]);
		int flag = 0, sum = 0;
		for (int x = 0; !(a[x] == 0 && b[x] == 0); x++) {
			sum += a[x] - '0' + b[x] - '0' + flag;
			if (sum >= 10) {
				flag = 1;
				sum -= 10;
				c[x] = sum + '0';
			}
			else {
				flag = 0;
				c[x] = sum + '0';
			}
			sum = 0;
			index = x;
		}
	int end;

	if (flag) {
		c[index] = flag+'0';
		end = index + 1;
	}
	else end = index;
		strcpy(d, c);
		for (int x = 0; x < strlen(c) / 2; x++)
			swap(c[x], c[strlen(c) - x - 1]);
		if (strcmp(d, c) == 0)
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
		for (int x = 0; x < 8; x++) {
			b[x] = 0;
			c[x] = 0;
			d[x] = 0;
		}
	}
}

문제 풀이

저는 문자열로 뒤집는 방법을 선택했습니다. 문자열 중간을 기준으로 앞과 뒤를 바꿔주었고 이 때 임의로 값을 저장할 변수도 만들었습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 4101번 C++  (0) 2023.08.17
백준 3273번 C++  (0) 2023.08.17
백준 3053번 JAVA  (0) 2023.08.17
백준 3052번 C++  (0) 2023.08.17
백준 3046번 C++  (0) 2023.08.17
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함