본문 바로가기

전체 글

백준1740번-거듭제곱(브론즈1) 문제출처 : https://www.acmicpc.net/problem/1740 1740번: 거듭제곱 3의 제곱수를 생각하자. 3의 0제곱, 3의 1제곱, 3의 2제곱, ... 은 순서대로 1, 3, 9, 27, ... 이 된다. 이를 바탕으로, 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 수를 생각할 수 있다. 예를 �� www.acmicpc.net 문제풀이) 3의 제곱수의 합으로 이루어져 있는 경우를 생각해 봅니다. 3의 제곱수 1,3,9,27 이렇게 있는 경우를 생각해 보면 다음과 같이 생각해 볼 수가 있습니다. 27 9 3 1 숫자 0 0 0 1 1 0 0 1 0 3 0 0 1 1 4 0 1 0 0 9 0 1 0 1 10 0 1 1 0 12 0 1 1 1 13 1 0 0 0 27 1 0 .. 더보기
백준1652-누울자리를 찾아라(브론즈1) 문제풀이 : https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 문제풀이) ..x.. 과 같은 경우는 2개를 처리 해야 되고 ..... 같은 경우는 1개로 처리해야 한다는 점만 유의하면 행에서 나올 수 있는 갯수와 열에서 나올수 있는 갯수를 세어 주면 된다. #include #include using namespace std; int nmap[110][110]; int main() { int n; cin >> n; char ch; int .. 더보기
백준1546-평균(브론즈1) 문제출처 : https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 문제풀이) 최대값을 찾은 후 각각의 점수를 다시 계산 후 평균 출력 #include #include #include using namespace std; int main() { int n,score[1001]; int maxscore=0; double sum = 0; scanf("%d",&n); for(int i=0;i 더보기
백준1526-가장 큰 금민수(브론즈1) 문제 출처 : https://www.acmicpc.net/problem/1526 1526번: 가장 큰 금민수 첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이) N부터 1까지 내려 가면서 금민수인지 체크해서 금민수를 만나면 출력 금민수를 체크하는 방법은 하나씩 잘라가면서 4 또는 7 이 아니라면 금민수가 아니다. #include using namespace std; bool check(int num) { while(num) { if(num%10 != 4 && num %10 != 7) return false; num/=10; } return true; } int main() { int n; cin >> n; for(int.. 더보기
백준1459 - 걷기(브론즈1) 문제출처 : https://www.acmicpc.net/problem/1459 1459번: 걷기 세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 ( www.acmicpc.net 문제풀이) 다음의 경우를 각각 체크해야 된다. 2 * w > s 인 경우에는 모두 축이동만 하는 경우이다. 2 * w < 2 * s 인 경우에는 축이동 두번 하는 것 보다 대각선 두번 이동 하는 경우가 더 좋은 경우이다. 이때 x + y 가 홀수 일때는 반드시 축이동을 한번 해 주어야 한다. 이때는 두 축 중에서 큰 것을 대각선의 갯수로 세어 준후 홀수 라면 대각선의 갯수에서 하나를.. 더보기
백준1455-뒤집기II(브론즈1) 문제출처 : https://www.acmicpc.net/problem/1455 1455번: 뒤집기 II 세준이는 동전 뒤집기를 하려고 한다. 세준이는 동전을 N*M개 가지고 있다. 동전은 세로로 N개, 가로로 M개 크기의 직사각형에 차곡차곡 놓여져 있다. 동전의 앞면을 0이라고 하고 뒷면을 1이라고 www.acmicpc.net 문제풀이) (a,b)를 뒤집는데 (0,0)부터 (a,b) 까지 뒤집어야 되므로 끝에서 부터 만약 1을 만나면 모두 뒤집어 보면 된다. #include #include using namespace std; int coin[110][110]; void Reverse(int y,int x) { for(int i=0;i n >> m; for(int i=0;i=0;j--) { if(coin.. 더보기
백준1453-피시방알바(브론즈1) 문제출처 : https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net 문제풀이) 해당 숫자가 입력되기 이전에 들어왔는지 체크하여 들어 온적이 있다고 하면 카운트를 증가하여 그 수를 출력 #include using namespace std; int main() { int n,num; int visit[1000]={0}; int cnt=0; cin >>n; for(int i=0;i> num; if(visit[num])cnt++; visit[num]=1; } cout 더보기
백준1418번-K세준수(브론즈1) 출처 : https://www.acmicpc.net/problem/1418 1418번: K-세준수 첫째 줄에 N, 둘째 줄에 K가 주어진다. N은 100,000보다 작거나 같은 자연수이고, K는 100보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이) 소인수 분해 한 약수중 가장 큰수를 기준으로 k보다 작은 수를 찾는 것이다. 에라토스테네스 체를 치는 원리를 이용해서 소수이면 소수의 배수들을 찾아 가면서 소인수의 약수의 크기를 자신으로 변경 해 준다. #include #define MAX 100010 using namespace std; int arr[MAX]; int main() { int n,k; int cnt=0; cin >> n >> k; for(int i=2;i 더보기