반응형

분류 전체보기 118

[백준][1475번] 방 번호 [cpp, c++]

백준 1475번 방 번호 간단한 배열 문제이지만, 정답률이 30퍼대로 낮은 문제이다. 숫자가 부족하면 채우는 것이 아닌, 최대 까지 채워진 숫자 세트에서 필요한 만큼 가져다가 쓰면 되는 문제다. https://www.acmicpc.net/problem/1475 풀이방법 1) 크기(size)가 10 이고 값(value)이 1,000,000인 check 배열을 생성한다. 이유는 N의 최대값이 1,000,000이기 때문이다. 2) check배열을 생성한 이유는 입력받은 string에 해당하는 숫자를 발견한다면, 해당 check 배열에 index에 접근해 값을 -1 해줄 것이다. 3) 입력받은 string 값의 해당하는 숫자를 발견한다면, 6인지 9인지 구별한다. 구별한 뒤, 더 값이 큰 쪽에 -1 를 해준다...

[백준][14891번] 톱니바퀴 [cpp, c++]

백준 14891번 톱니바퀴 전형적인 시뮬레이션 문제이다. 2차원 배열을 더 쓰면 간단하게 할 수 있지만, 4개 밖에 되지 않아 하드 코딩했다. https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 시계방향 순서대로 주어진다. N극은 0, S극은 1로 나타나있다. 다섯째 줄에는 회전 횟수 K(1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 회전시킨 방법이 순서대로 주어진다. 각 방법은 두 개의 정수로 이루어져 있고, 첫 번째 정수는 회전시킨 톱니바퀴 www.acmicp..

[백준][11559번] Puyo Puyo [cpp, c++]

백준 11559번 Puyo Puyo 전형적인 시뮬레이션 문제이다. https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 현재 주어진 상황에서 몇연쇄가 되는지 출력하라. (하나도 터지지 않는다면 0을 출력하면 된다.) www.acmicpc.net 풀이방법 1) R, G, B, P, Y 순으로 BFS를 통해 4개가 뭉쳐있는 곳을 찾아 check2배열에 표시해놓는다. 2) 터트린 부분을 위에서 부터 밑으로 한칸 씩 채운다. 함수 설명 bfs() : bfs 탐색 move_block(int x, int y): y열에서 x칸까지 1칸씩 이동 delete_block(): 몇 번 이동할지 결정 ※주의사항: BFS할 때 위에서 한번만 훝는 씩이 아닌 각각 색깔에 대한 검사가..

[백준][11720번] 숫자의 합 [C언어]

백준 11720번 숫자의 합 쉬운 문제이다 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net #include #include int main(int argc, const char * argv[]) { int cnt; char* num; int sum=0; scanf("%d",&cnt); num =(char*)calloc(cnt, sizeof(char)); scanf("%s",num); for(int i=0;i

[백준][11721번] 열 개씩 끊어 출력하기 [C언어]

백준 11721번 열 개씩 끊어 출력하기 쉬운 문제이다. https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net #include int main(int argc, const char * argv[]) { char String[100]; scanf("%s",String); for(int i=0; i

[백준][1110번] 더하기 사이클 [C언어]

백준 1110 더하기 사이클 쉬운 문제이다 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = www.acmicpc.net #include int main(int argc, const char * argv[]) ..

반응형