Mentoring 32

[멘토링][c언어]백준 2566번 : 최댓값

#include int main() { int arr[9][9]; int max = 0; int r = 0, c = 0; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { scanf_s("%d", &arr[i][j]); if (max < arr[i][j]) { max = arr[i][j]; r = i + 1; c = j + 1; } } } printf("%d \n", max); printf("%d %d", r, c); return 0; } 2차원 배열을 이용하여 풀어야하므로 배열을 선언해준다. 배열은 선언해주고 초기화를 해주어야 하므로 for문 안에 scanf를 넣어 입력을 받아준 뒤 최댓값을 구해야 하므로 if문을 사용하여 최댓값을 구해준다. 출..

Mentoring 2020.05.18

[멘토링][c언어]백준 2577번 : 숫자의 개수

#include int main() { int arr[10] = { 0, }; int a, b, c, total, rest; scanf_s("%d", &a); scanf_s("%d", &b); scanf_s("%d", &c); total = a * b * c; while(total > 0) { rest = total % 10; total = total / 10; arr[rest]++; } for (int i = 0; i < 10; i++) { printf("%d \n", arr[i]); } return 0; } arr 배열의 모든 원소 값은 0으로 초기화 해두고 값을 하나씩 넣어줄 것이다. 먼저 a, b, c의 값을 입력받고 곱한 값을 total에 저장해준다. total 값에서 하나씩 rest에 저장하여..

Mentoring 2020.05.18

[멘토링][c언어]백준 2562번 : 최댓값

#include int main() { int arr[9]; int max = 0, num = 0; for (int i = 0; i < 9; i++) { scanf_s("%d", &arr[i]); if (max < arr[i]) { max = arr[i]; num = i + 1; } } printf("%d \n", max); printf("%d \n", num); return 0; } 9개의 서로 다른 자연수를 배열을 이용하여 저장해준다. for문을 사용하여 scanf로 입력을 받으면 max값과 비교하여 최댓값을 구해준다. 그 숫자가 몇 번째 숫자인지도 알아야 하기에 num변수를 주었다. +1을 해준 이유는 i는 배열의 순서이르모 +1을 해서 몇 번째에 입력한 숫자인지 num변수에 저장해준다.

Mentoring 2020.05.17

[멘토링][리눅스]overthewire : bandit Level 9→Level 10 / strings 명령어

Level 9→Level 10의 목표는 data.txt에 저장되어 있고 여러 개의 '=' 뒤에 사람이 읽을 수 있는 문자들 중 하나인 패스워드를 알아내는 것이다. cat data.txt 를 입력하면 알 수 없는 내용들이 출력이 된다. file 명령을 사용하여 파일의 종류를 확인해보니 data 라고 나왔다. 오브젝트 파일(바이너리 파일)의 내용을 확인하기 위해서는 cat 명령어를 사용할 수 없다. 그렇기 때문에 strings 명령을 사용해야 한다. strings 명령어를 사용하면 이렇게 출력이 된다. strings 명령은 실행파일의 ASCII 문자를 찾아 화면에 출력한다. strings 명령을 사용하여 문자를 찾으면 몇 개의 "=" 뒤에 비밀번호가 있다고 하였으므로 grep 명령을 함께 이용해주어야 한다...

Mentoring 2020.05.17

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

배열 동일한 자료형들의 모임 자료형 배열이름 [배열크기] ; *인원수가 10명인 반의 성적처리 int score[10] = {100, 96, 84, 72, 60, 50, 80, 92, 76, 88}; 100 96 84 72 60 50 80 92 76 88 score[0] = 100 score[1] = 96 score[9] = 88 배열의 초기화 int score[10] = {100, 96, 84, 72, 60, 50, 80, 92, 76, 88}; 이는 모든 배열 요소들을 초기화 int score[10] = {100, 96, 84}; score[0], score[1], score[2] 이외의 나머지 원소에는 0값이 들어감 int score[10] = {0, }; 배열의 모든 원소 값을 0으로 초기화 배열..

Mentoring 2020.05.16

[멘토링][리눅스]overthewire : bandit Level 8→Level 9 / sort 명령어 & uniq 명령어, 파이프(|)

Level 8→Level 9의 목표는 data.txt에 저장되어 있으며 한 번만 보이는 라인의 패스워드를 알아내는 것이다. 나는 이것을 풀 때 엄청 헷갈렸다. 처음엔 grep명령어를 사용하여 풀고자 하였다. 아무리 찾고 생각해도 grep 옵션을 무엇을 사용해야 할지 몰라서 조언을 구했다. sort 명령어와 uniq 명령어를 이용하라고 하였는데 나는 둘 다 모르는 명령어였다. 구글링 하지 말고 그냥 써보라고 해서 써보았더니 sort 명령어는 정렬이 되는 것을 알 수 있었고 uniq는 몰랐지만 반복되는 것을 하나만 남기고 제거해주는 것을 알 수 있었다. 우리는 그러면 data.txt에 많은 내용이 들어있고 반복되고 있으므로 sort 명령어를 사용하여 정렬을 해주되 우리가 찾아야 하는 것은 반복되는 문자열이 ..

Mentoring 2020.05.16

[멘토링][리눅스]overthewire : bandit Level 7→Level 8 / grep 명령어

Level 7→Level 8의 목표는 data.txt파일에 저장되어 있는 패스워드를 알아내는 것이다. 여기서 알아야 할 것은 millinoth 단어 옆에 있다는 것이다. 우리는 data.txt 파일을 읽어줘야 하기 때문에 cat 명령어를 사용해야 한다. (나는 find 명령어를 사용하여 찾으려고 난리침...정신 차리고 풀자...) 엄청나게 많은 양의 내용이 반복되어 계속 진행된다. Ctrl + C를 눌러 강제종료를 시켰다. "millionth"이라고 하면 아무것도 안 보이지만 *을 붙여주면 결과가 나온다. 비밀번호는 단어 다음에 있다고 하였으므로 *을 붙여주어야한다. grep에 대해 알아보니 이러한 방법으로도 풀이가 가능하다. grep은 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는..

Mentoring 2020.05.15

[멘토링][리눅스]overthewire : bandit Level 6→Level 7

Level 6→Level 7의 목표는 서버의 어딘가에 저장되어 있는 패스워드를 알아내는 것이다. 주어진 특징들을 이용하여 찾아내야한다. 첫 번째 특징이 bandit7의 user에 소유되어 있다고 했으니 '-user' 옵션을 사용했다. -user name : name 사용자에 속한 파일 또는 디렉토리를 검색 -group name : name 그룹에 속한 파일 또는 디렉토리를 검색 명령어로 찾아보니 많은 양의 파일들이 나왔다. 하지만 Permission denied는 허가되지 않은 것으로 해당되지 않는다. 그렇다면 두개의 파일로 폭이 좁아진다. 나는 ' /var/lib/dpkg/info/bandit7.password ' 파일인 것 같아서 열어보았다. 비밀번호를 알아냈다. HKBPTKQnIay4Fw76bEy8..

Mentoring 2020.05.15

[멘토링][리눅스]overthewire : bandit Level 5→Level 6 / find 명령어

Level 5→Level 6의 목표는 inhere 디렉토리 아래 어딘가에 있는 파일에 저장되어 있는 패스워드를 알아내는 것이다. 3가지의 특징들을 가지고 있으므로 저것을 이용하여 문제를 풀어야 한다. inhere 디렉토리에 들어가서 ls 명령어를 사용하여 보면 안에 파일이 많다. 이걸 하나하나 열어서 확인할 수 없다. '--help'를 사용하여 find의 옵션을 찾아보았다. '-size'옵션을 사용하여 바이트 크기를 이용해서 파일을 찾을 것이다. find명령어의 -size옵션은 크기를 알려준다. -size +n : n보다 큰 크기의 파일을 찾는다. -size n : n과 일치하는 크기의 파일을 찾는다. -size -n : n보다 작은 크기의 파일을 찾는다. 1033bytes를 구하기 위해 나는 1033c..

Mentoring 2020.05.15

[멘토링][리눅스]overthewire : bandit Level 4→Level 5

Level 4→Level 5의 목표는 inhere 디렉토리안에 사람이 읽을 수 있는 파일에 저장된 패스워드를 알아내는 것이다. ls 명령어를 사용하여 inhere 디렉토리를 확인하고 inhere 디렉토리로 들어가면 10개의 파일이 있다. 이 중에서 사람이 읽을 수 있는 파일을 찾아야 한다. '-file00'을 열어보았다. '-file00'은 아닌 것을 알 수 있다. 지금 이 경우에는 10개라서 하나하나 해볼 수 있지만 파일이 만약 100개라면 하나하나 해볼 수 없을 것이다. 이때 필요한 것이 file 명령어다. file 명령어는 지정된 파일의 종류(타입)을 알려주는 명령어이다. file 명령어를 사용하였을 때 '-file07'만 종류가 다른 것을 확인할 수 있다. 그래서 열어보았더니 비밀번호를 알아낼 수..

Mentoring 2020.05.15