분류 전체보기

    [10809] 알파벳 찾기

    문제 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 💡 내 코드 Ver.1(C) // [10809] 알파벳 찾기 // https://www.acmicpc.net/problem/10809 #include #include int main(void) { char s[100], cnt[26]; for(int i = 0 ; i < 26 ; i++) cnt[i] = -1; scanf("%s", s); for(int i = 0 ..

    [2775] 부녀회장이 될테야

    [2775] 부녀회장이 될테야

    https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1

    [2908] 상수

    https://www.acmicpc.net/problem/2908 2908번: 상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 www.acmicpc.net 💡 내 코드(C) Ver.1 /* 상수 */ #include int main(void) { int a[3], b[3], n = 1; int ..

    [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번..