분류 전체보기 14

파이썬 멘토링[4] - 백준 10872번, 15596번, 계산기 프로그램

10872번 - 팩토리얼 15596번 - 정수 N개의 합 메모리가 말도 안되게 치솟는 걸 볼 수 있다.. 계산기 프로그램 두 수, 부호를 받아 함수로 넘겨주었다. 각 부호를 판별하여 리턴값을 다르게 해주었고, 0 입력시 break 를 통해 무한반복에서 빠져나오도록 if문 하나를 집어넣어줬다. 잘 실행 되는 것을 확인할 수 있었다.

파이썬 멘토링[3] - 백준 2753번, 2739번, 2742번

내용 자체는 C언어로 코딩한 것과 별반 차이가 없지만 정말 간단한 모습으로 코딩이 되는 것을 보고 놀라움을 금치 못했다.. 하지만 실행했을 때 메모리의 값과 소요되는 시간이 C언어가 훨씬 빠르다는 것을 알 수 있다.. 파이썬이 아무리 쉽고 간편한 언어라지만 C언어가 계속 사용되는 이유를 알 것 같다.

파이썬 멘토링[2] - 리스트, 딕셔너리, 튜플,세트

리스트, 딕셔너리, 튜플, 세트 등 모두 한번에 여러개의 자료를 담을 수 있는 C언어의 "배열" 기능을 담당한다. 하지만 각각의 기능과 쓰임새, 사용법이 다르다. 리스트 대괄호 [ ] 로 정의를 한다. 입력된 순서가 유지된다. 어떤 자료형도 저장이 가능하다. 1개의 자료도 리스트로 만들 수 있다. a.append(), a.sort(), a.count() 등의 리스트 관련 함수가 있다. 튜플 소괄호 ( ) 로 정의를 한다. 리스트의 값은 변동시킬 수 있으나, 튜플은 그럴 수 없다. 1개의 요소만을 가질 때 뒤에 콤마를 붙여야한다 튜플을 만들 때 괄호 생략이 가능하다. 딕셔너리 중괄호 { } 로 정의를 한다. 키와 값을 쌍을 요소로 가지는 자료형이다. 키로 빠르게 값을 찾을 수 있다 -> 해시테이블 구조 인..

SCP 동아리 C언어 5주차 과제

옛날에는 while 문이 훨씬 편하다고 생각했는데 for문이 깔끔하게 내용을 보여주는 것 같아서 요즘에는 for문을 더 선호하게 되었다. scanf 함수의 경우 공백이 나오면 입력을 멈추기에... %[\n]s 를 사용하여 \n 을 입력받을 때까지 scanf 함수가 진행되도록 하였다.. 이에 대해 전혀 모르고 있었기에 해당 문제의 정답을 구글링하다가 알게된 사실이었다.. 이 문제는 생각보다 쉬웠다... 아스키코드에서 알파벳 소문자의 구간을 찾아 응용하여 풀었다.

리눅스 멘토링 과제 ( 워게임 17 → 18 ~ 20 → 21 )

레벨에 들어가면 두개의 파일이 있다. 두 파일의 차이점을 찾아 패스워드를 얻을 수 있다고 한다. 두 파일을 비교해주는 diff 명령어와 차이점을 출력해주는 -c 옵션을 통해 password.new 에서 패스워드를 얻을 수 있었다. 해당 레벨에 들어가면 이 문구와 함께 연결이 바로 종료된다. ssh 명령어 뒤에 따옴표를 이용하여 접속후 바로 명령어가 실행되도록 하여 readme 파일에 있는 패스워드를 얻을 수 있었다. 해당 레벨에 들어가면 banit20-do 라는 파일이 있다. 실행을 시켜보니 사용방법이 나온다. bandit20 유저의 권한으로 명령어를 실행해주는 파일인 것 같다. 해당 경로에 비밀번호가 있다고 하였으니 사용방법을 참고하여 명령어를 실행하였더니 패스워드를 얻을 수 있었다. suconnect..

리눅스 멘토링 과제 ( 워게임 12 → 13 ~ 16 → 17 )

16진수로 이루어진 여러번 압축된 파일이 있다. /tmp 폴더로 이 파일을 복사해서 여러 종류의 압축 명령어로 압축을 풀어야한다. 16진수로 변환해주는 명령어 xxd와 16진수를 2진수로 변환해주는 옵션 -r 을 사용하여 data.txt 가 본래 gzip 으로 압축된 data2.bin 이라는 것을 알게 되었다. gzip 압축파일의 확장자는 .gz 이므로 data를 data.gz 라는 확장자로 바꿔주고 gzip 명령어와 -d 옵션으로 압축 해제를 진행하였다. 이제 data는 bzip2 로 압축된 파일이라는 것을 알게 되었다. bzip2 같은 경우에는 압축 해제시 덮어쓰기를 지원해주지 않는다. data 를 지우고 압축 해제를 진행했더니 data가 gzip 으로 압축된 data4.bin 이라는 것을 알게 되었..