본문 바로가기

전체 글

백준 1252번 - 이진수덧셈(브론즈1) 출처 : https://www.acmicpc.net/problem/1252 1252번: 이진수 덧셈 첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다. www.acmicpc.net 문제풀이> 80자리까지 나오기 때문에 이진수를 십진수로 변환하여 계산후 이진수로 변환하는 방법은 실패 문자열끼리의 합을 구해 주는데 앞의 '0'이 나온것을 제거 후 두개의 문자열의 개수를 동일하게 맞춘 후에 뒷자리 부터 계산하면서 올림수를 처리해 줄때까지 출력 하는 형식으로 처리함 #include #include using namespace std; char binary1[100]; char bin.. 더보기
백준 1236 - 성지키기(브론즈1) 출처) https://www.acmicpc.net/problem/1236 1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net 문제풀이> 행과 열 중에서 X가 없는 갯수를 세어 더 많은 쪽의 갯수를 출력하면 되는 문제임 #include #include using namespace std; char castle; int Rowcnt[100]; int Colcnt[100]; int main() { int n,m; int i,j; cin >> n >> m; for(i=0;i 더보기
직사각형을 채우는 방법의 개수 구하기 다음 그림과 같은 타일을 이용하여 2 * 5 인 직사각형을 채우는 방법의 수를 구하여라 정답) 1944 문제풀이) 2 * 1 의 크기의 직사각형을 채우는 경우의 수를 확인해 보면 다음과 같이 3가지 이다. 삼각형 2개를 이용하는 경우 2가지 직사각형을 이용하는 경우 1가지 2 * 2 크기의 직사각형을 채우는 경우의 수를 확인 해 보면 2 * 1 을 f(1) 이라고 생각하고 2*0을 f(0) 이라고 생각하면 f(0) 은 공간이 없는 곳에 채우는 개수이므로 안채우는 경우 1가지 이므로 2 * 2 를 f(2) 라고 하면 f(2) 는 f(1) 에 2 * 1 짜리 직사각형 한가지를 붙이는 경우 f(1) * 3 이 된다. 또한 f(0) 에 붙이는 경우는 1*2 짜리 2개를 붙이는 경우를 생각해 보면 3 * 3 = .. 더보기
백준 1157 - 단어공부(브론즈1) 출처 : https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 카운트 배열을 이용하여 나온 갯수를 센 후 max값을 찾을 수 있는지를 체크하는 문제 #include #include #include #include using namespace std; char str[1000001]; int main() { int cnt[26]={0}; scanf("%s",str); int len = strlen(str); for(int i=0;i 더보기
백준 1110 - 더하기 사이클(브론즈I) 문제출처 : https://www.acmicpc.net/source/10769662 로그인 www.acmicpc.net 10진수의 자리를 분해 할 수 있는지 체크하는 문제 #include #include #include using namespace std; int main() { int n; scanf("%d",&n); if(n 더보기
백준 1032 - 명령 프롬프트(브론즈1) 출처 - https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 �� www.acmicpc.net 문자열을 다룰수 있는지 확인하는 문제 #include #include using namespace std; char word[100][100]; int main() { int n; cin >> n; for(int i=0;i> word[i]; } char cmp[100]; strcpy(cmp,word[0]); int len = strlen(word[0]); for(int i=1;i 더보기
도형의 넓이 구하기 다음 다각형의 넓이는 얼마입니까? 단 점선의 간격은 1입니다. 정답 : 12 여기서 삼각형의 넓이를 구하는 공식으로 구하기에는 밑변과 높이를 구하기 어렵기 때문에 다음과 같이 사각형을 면적을 먼저 구한 후에 흰색 부분의 넓이를 빼주는 것이 유리합니다. 사각형의 넓이는 6 * 5 = 30 흰색 부분의 삼각형의 넓이는 각각 3 * 6 / 2 = 9 2 * 4 / 2 = 4 2 * 5 / 2 = 5 이므로 18 따라서 30 - 18 = 12 가 됩니다. 더보기
도형 나누기 다음 그림에서 정사각형을 두개로 나누어서 모양과 크기가 서로 같게 하고 A,B,C,D,E 가 각각 하나씩 포함되게 도형을 만들 수 있습니까? 만들 수 있다면 어떤 모양입니까? 정답) 가능 똑같은 모양으로 각각 하나씩 포함을 해야 되므로 AA,BB,CC 를 분리 한 후에 각각을 포함할 수 있는 경로를 찾아 보면 다음과 같은 모양을 만들수 있다. 1단계로 이런 모양으로 분리를 하면 E는 노랑색이 되는 것을 확인 할 수 있다. 여기서 E는 노란색이므로 이렇게 같은 쌍으로 나누면 B는 노랑색이어야 하므로 위와 같은 형식으로 분리를 할 수 있다. 이러한 방법 말고도 여러가지가 있으므로 직접 분해 해 보면 더 좋을것 같네요. 더보기