Baekjoon

    [2444] 별 찍기 - 7

    🍃 문제 바로가기 💡내 코드(C) Ver.1 #include int main(void) { int n, replay; scanf("%d", &n); for (int i = 1; i 0; i--) { replay = ((2 * n - 1) - (2 * i - 1)) / 2; for (int k = 0; k < replay; k++) { printf(" "); } for (int j = 0; j < 2 * i - 1; j++) { printf("*"); } printf("\n"); } } Ver.2 #include int main(void) { int n; scanf("%d", &n); for(int i = 1 ; i 0 ; j--) { printf(" "); } for(int j = 1 ; j 0 ; i-..

    [2577] 숫자의 개수

    [2577] 숫자의 개수

    https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 🔎해결 방법 일단 세 수를 입력받고 모두 곱한 결과를 product 변수에 저장한다. product를 10으로 나눈 나머지를 인덱스로 하는 num 배열의 값을 1 증가시키고 그 과정을 계속 반복한다. 언제까지? product를 10으로 나눈 몫이 0이 아닐 때까지! 그럼 while문을 다 돌고 나오면 최고 자리 수는 아직 카운트 되지 못한 상태이기 때문에 마지막으로 최고 자리 수를 인덱스로 하는 num 배열의 값을 증가시켜주면 된다! 💡내 코드(C) ..

    [1076] 저항(C)

    [1076] 저항(C)

    🍃 문제 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다. www.acmicpc.net 🍃 해결 방법 c++에서는 string을 사용할 수 있지만 c로 풀려다보니 문자열을 어떻게 배열에 넣을지 고민하느라 좀 애를 먹었던 문제이다. 우선 주어진 색이 모두 white 인 경우, 저항값은 99000000000으로 int형의 범위를 벗어나게 된다. 따라서 저항값을 저장할 변수는 반드시 long long으로 선언해주어야 한다! 입력받은 색을 저장할 input 배열은 문자열을 저장할 것이기 때문에 2차원 배열로 선언해주면 된다. 배열을 입력받을 때는 sccanf 에서 & 기호가 필요없다는 사실을 그만 까먹자... ..

    [2442] 별 찍기 - 5

    [2442] 별 찍기 - 5

    https://www.acmicpc.net/problem/2442 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 🔎 해결 방법 예를 들어 입력받은 수가 5라면 첫 번째 줄에는 (5 - 1)개의 빈칸, 두 번째 줄에는 (5 - 2)개의 빈칸을 출력해야 한다. 따라서 빈칸은 (n - i)개만큼 출력하면 되고 별의 개수는 첫 번째 줄에 1개, 두 번째 줄에 3개와 같이 찍히므로 (2n - 1) 개 만큼 출력해주면 된다. 그리고 출력해야 하는 별의 개수는 굳이 일반항을 찾지 않더라도 문제에서 이미 "n번째 줄에는 (2 x n - 1) 개의 별을 출력하라"고 친절하..

    [2292] 벌집(C/C++)

    🍃 문제 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. www.acmicpc.net 🍃 해결 방법 그림만 보고 압도되기 쉽지만... 계차수열 공식이 아직 머리에 남아있다면 빠르게 풀 수 있는 문제였다. 우선 1번 방에서 특정 방으로 이동하기 위해 몇개의 방을 지나야 하는지를 확인해보자. 1번 방부터 1번 방 : 1개 1번 방부터 2~7번..

    [1094] 막대기

    [1094] 막대기

    https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대를 만들려고 한다. 막대를 자르는 가장 쉬운 방법은 절반으로 자르는 것이다. 지민이는 아래와 같은 과정을 거쳐서 막대를 자르려고 한다. 지민이가 가지고 있는 막대의 길이를 모두 더한다. 처음에는 64cm 막대 하나만 가지고 있다. 이때, 합이 X보다 크다면, www.acmicpc.net 해결 방법 이 문제는 사실 문제 설명에서 알고리즘이 다 주어진다. 그냥 진짜 적혀있는대로 코드를 작성하면 된다. 막대의 길이를 저장할 벡터..

    [1193] 분수찾기

    🍃 문제 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 수2였나.... 수열을 배우는 단원에서 군수열이라는 개념이 나온다. 학회 면접을 볼 때도 이 문제가 나왔었는데 그때는 시간이 촉박한 탓에 당황하여 코드는 작성하지 못했고 시간을 더 줄테니 어떻게 해결하면 좋을지 말해보라고 하셨다ㅎㅎㅎ 면접관들은 나만 보고 계시고... 코드로는 어떻게 해야할지 빨리빨리 생각나지도 않고... 그래서 "저 혹시.. 군수열이라고 아시나요...? 고등학교때 배웠던건데 어쩌고 저쩌고...." 하면서 횡설수설하고 온 기억이 있다. 쨌든 합격~! 🍃 해결 방법 문제에서 말하는 조건을 군수열 로 나타내면 아래의 그림과 같다. 이때 자세히 보면 홀수군은 분모가 증가하고..

    [1475] 방 번호

    [1475] 방 번호

    https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 🔎 해결 방법 6과 9는 같은 숫자처럼 사용할 수 있기 때문에 두 숫자는 각각 개수를 따지는것이 아니라 더한 값을 따져야 한다. 1. 다솜이의 방 번호를 입력받는다. 이때 방 번호는 공백이 없이 주어지므로 하나의 숫자씩 저장하기 위해서는 string으로 입력받아야 한다! 2. exist 배열은 0~9까지의 숫자가 각각 몇 번 나왔는지를 해당 인덱스에 저장하는 배열이므로, 방 번호의 각 숫자에서 '0'을 뺀 값을 인덱스로 하여 exist 배열을 완성시킨다. 중요한 사실은... 방 번호에 ..