전체 글 356

[백준/C] 1718 암호

https://www.acmicpc.net/problem/1718 1718번: 암호 Vigenere cipher이라는 암호화 방법은 암호화하려는 문장 (평문)의 단어와 암호화 키를 숫자로 바꾼 다음, 평문의 단어에 해당하는 숫자에 암호 키에 해당하는 숫자를 더하는 방식이다. 이 방법을 변 www.acmicpc.net 코드 #include #include int main() { char string[30001]; scanf("%[^\n]s", &string); int len = strlen(string); char key[300001]; scanf("%s", &key); int keyLen = strlen(key); for (int i = 0; i < len; i++) { if (string[i] == '..

PS (C, C++) 2022.08.24

[컴퓨터과학의이해🧮] 서론 (0장)

교재 : 컴퓨터 과학 총론 (13th Edition)(배운 내용을 책으로 복습하며 작성한 글입니다. )1. 알고리즘의 역할1) 알고리즘알고리즘 : 작업을 수행하는 방법을 정의하는 단계들의 집합프로그램 : 알고리즘의 표현방식 중 하나프로그래밍 : 프로그램을 컴퓨터가 처리할 수 있는 형식으로 인코딩하여 컴퓨터 안에 저장시키는 과정 (==코딩) 2) 소프트웨어와 하드웨어소프트웨어 : 프로그램과 이들이 나타내는 알고리즘하드웨어 : 컴퓨터 장치 자체 3) 알고리즘에 관한 연구- 수학의 한 분야에서 시작함- 알고리즘에대한 초창기 연구 예시ex) 나눗셈법 알고리즘, *유클리드의 호제법 알고리즘 * 유클리드의 호제법 알고리즘두 개의 자연수가 입력되는 것을 가정한다. ① 두 입력값 중 큰 값을 M, 작은 값을N에 배정한..

[백준/C] 1547 공

https://www.acmicpc.net/problem/1547 1547번: 공 첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것 www.acmicpc.net 코드 #include void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; } int findIndex(int a, int arr[]) { for (int i = 0; i < 3; i++) if (a == arr[i]) return i; return -1; } int main() { int m, arr[3] = {1,2,3}; int a,..

PS (C, C++) 2022.08.22

[백준/C] 1076 저항

https://www.acmicpc.net/problem/1076 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다. www.acmicpc.net 코드 #include #include #include int findIndex(char str[], char arr[][10]) { for (int i = 0; i < 10; i++) if (strcmp(str,arr[i]) == 0) return i; return -1; } int main() { long long result = 0; char a[10], b[10], c[10], arr[10][10] = { "black", "brown", "red", "orange..

PS (C, C++) 2022.08.22

[백준/C] 1085 직사각형에서 탈출

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 코드 #include int main() { int x, y, w, h, xlen, ylen; scanf("%d %d %d %d", &x, &y, &w, &h); xlen = x; ylen = y; if (w - x ylen) printf("%d", ylen); else p..

PS (C, C++) 2022.08.22

[백준/C] 1598 꼬리를 무는 숫자 나열

https://www.acmicpc.net/problem/1598 1598번: 꼬리를 무는 숫자 나열 첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 수는 10,000,000 이하이다. www.acmicpc.net 코드 #include #include int main() { int a, b; scanf("%d %d", &a, &b); int aX = (a-1) / 4; int aY = (a -1)% 4; int bX = (b - 1)/4; int bY = (b - 1) % 4; printf("%d", abs(aX - bX) + abs(aY - bY)); return 0; } 코드 설명 표를 보고 a와 b의 좌표를 식으로 정리한다. (이때 좌표는 길이를 구하는 용으로만 사용한다.) 1~4까지, ..

PS (C, C++) 2022.08.22

[백준/C] 1159 농구 경기

https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 코드 #include int main() { int n, countNum = 0; scanf("%d", &n); char name[151][31]; char first[151]; int count[26] = {0}; for (int i = 0; i < n; i++) { scanf("%s", name[i]); first[i] = name[i][0]; } for (int i = 0; i < n; i++) {..

PS (C, C++) 2022.08.21

[백준/C] 1032 명령 프롬프트

https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 코드 #include #include #define MAX_LINE 51 #define MAX_WORD 51 int main() { int n; char fileNames[MAX_LINE][MAX_WORD]; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%s", fileNames[i]); strcpy(fileNames[n], fileNames[..

PS (C, C++) 2022.08.20

[백준/C] 1010 다리놓기

https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 코드 #include double result(int a, int b); double factorial(int n); int main() { int n,a,b; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d %d", &a, &b); printf("%.f\n", result(a,b)); } return 0; } double result(int ..

PS (C, C++) 2022.08.20

[백준/C] 1924 2007년

https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 코드 #include int main() { char week[7][4] ={"SUN", "MON", "TUE", "WED", "THU", "FRI","SAT"}; int year = 20, year2 = 7, month, day; scanf("%d %d",&month, &day); if (month < 3) { year2--; month += 12; } ..

PS (C, C++) 2022.08.20