Mentoring 32

[멘토링][c언어]배열 거꾸로 출력하기 (포인터 및 배열 사용)

#include int main() { int arr[5] = { 2,4,6,8,10 }; int *p = arr; int num = 0; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4 - i; j++) { num = *(p + 1 + j); *(p + 1 + j) = *(p + j); *(p + j) = num; } } for (int i = 0; i < 5; i++) { printf("%d \n", p[i]); } return 0; } arr[5]로 배열을 선언하고 초기화 시켜준다. arr배열을 가르키는 포인터 p를 선언한다. 변수 num을 선언하고 초기화한다. for문을 사용하여 배열을 거꾸로 출력해 줄 것이다. 첫 번째 for문에서 i를 선언하고 우리..

Mentoring 2020.06.04

[멘토링][c언어]백준 2562번 : 최댓값 (포인터 사용)

#include int main() { int arr[9]; int *p = arr; int max = 0; int num = 0; for (int i = 0; i < 9; i++) { scanf_s("%d", &p[i]); if (max < p[i]) { max = p[i]; num = i + 1; } } printf("%d\n", max); printf("%d\n", num); return 0; } 서로 다른 9개의 졍수를 입력받으므로 arr[9]를 선언한다. 포인터 변수 p를 선언한다. 최댓값과 그 값이 몇 번째 수인지를 알기 위해 max와 num변수를 선언해준다. for문을 사용하여 arr배열에 들어갈 숫자들을 입력받은 뒤 if문의 조건을 이용하여 최댓값을 구해준다. 여기서 arr배열을 이용할 수..

Mentoring 2020.06.01

[멘토링][c언어]알파벳 개수 문제

#include #include void main() { int len, i; int arr[255] = { 0, }; char str[10]; gets(str, 10); len = strlen(str); for (i = 0; i < len; i++) { arr[str[i]]++; } for (i = 'A'; i 0) { printf("%c %d\n", i, arr[i]); } } return 0; } 검색을 통해서 풀었다.. 아직도 왜 arr에 255를 준 것인지는 잘 모르겠다.. 다들 255를 주었다.. str에 문자열을 입력받고 for문을 통해서 arr에 받아준 문자열의 길이를 구해준다. 이를 통해 다음 반복문 안에 조건에 쓸 것이다. for문에서 a부터 z까지 반복하며 arr이 0보다 크다는 것은..

Mentoring 2020.05.29

[멘토링][c언어]백준 1152번 : 단어의 개수

#include #include void main() { char str[1000001]; int num=0; int len; gets_s(str, 1000001); len = strlen(str); for (int i = 0; i < len; i++) { if (str[i] == ' ') { num++; } } num += 1; if (str[0] == ' ') { num--; } printf("%d\n", num); return 0; } str에 문자열을 입력받고 for문을 사용하여 공백을 세주고 공백에 +1을 해주면 단어의 개수를 알 수 있다. 맨 앞에 공백을 넣어줄 수도 있으므로 if 조건문을 사용하여 조건을 따져준다.

Mentoring 2020.05.28

[멘토링][c언어]백준 2675번 : 문자열 반복

#include #include void main() { int i, n, m, a, b; char str[21]; scanf_s("%d", &n); for (i = 0; i < n; i++) { scanf_s("%d", &m); scanf_s("%s", str, 21); for (a = 0; a < strlen(str); a++) { for (b = 0; b < m; b++) { printf("%c", str[a]); } } } return 0; } 처음에 푸는 데 힘들었다. 처음 scanf를 이용하여 테스트 케이스를 몇 번 진행할지를 입력받아주고 for문 안에서 각 문자 반복횟수와 문자열을 입력 받는다. 그 뒤에 각 문자를 반복해야 하기 때문에 문자열 갯수를 받아주고 각 문자들을 m번 반복해야 하므로..

Mentoring 2020.05.28

[멘토링][c언어] 다섯 번째 수업

문자열과 문자열 처리함수 문자배열 문자열 입/출력 문자열 처리함수 문자배열 c언어에는 문자열을 저장하는 자료형이 존재 X →배열을 이용 -초기화 1. 자료형 배열이름[배열크기] = "string"; 2. 자료형 배열이름[] = "string"; 3. 자료형 배열이름[] = {'s', 't', 'r', 'i', 'n', 'g', '\0'}; 문자열 입/출력 -입력 1. scnaf("%s", str); 2. gets(str); -출력 printf("%s", str); 문자열 처리함수 헤더 : 1. strlen() : 문자열의 길이를 구하는 함수 2. strcpy() : 문자열을 복사하는 함수 strcpy (받을 문자열, 복사할 문자열); ex) strcpy (str1, str2); : str1에 str2를 ..

Mentoring 2020.05.23

[멘토링][리눅스]overthewire : bandit Level 11→Level 12

Level 11→Level 12의 목표는 대문자와 소문자가 13씩 회전하는 data.txt에서 패스워드를 알아내는 것이다. 이번에는 위키피디아를 윗부분만 읽고 이해했다.. 그래서 저거를 하나하나 비교해가며 풀었다..^^ 근데 위키피디아를 밑부분으로 내려보니 힌트가 다 나와있었다. 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu가 바로 bandit Level 11의 비밀번호이다. tr은 지정한 문자를 바꿔주거나 삭제할 때 사용하는 명령이다. 우리는 tr을 사용하여 A-Za-z를 N-ZA-Mn-za-m으로 바꿔주는 명령을 주어서 패스워드를 구하였다. 출처: https://webdir.tistory.com/146 [WEBDIR]

Mentoring 2020.05.21

[멘토링][리눅스]overthewire : bandit Level 10→Level 11

Level 10→Level 11 의 목표는 base64로 인코딩된 데이터를 포함하고 있는 data.txt에서 패스워드를 알아내는 것이다. 풀고 나니 어이가 없는 문제였다.. 나는 왜... 모르면 help 좀 쓰자 제발^^ 처음에는 base64 위키피디아만 엄청 읽고 또 읽었다.. base64 --help 를 사용하니 옵션들이 쭉 나타났고 인코딩이 되어 있다고 하였으니 디코딩을 해주는 옵션인 -d 옵션을 사용해야 한다는 것을 알 수 있다. IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR가 바로 bandit Level 11의 비밀번호이다. 인코딩 : 문자열을 바이트로 변환 디코딩 : 바이트를 문자열로 변환 출처: https://200301.tistory.com/9

Mentoring 2020.05.20