분류 전체보기(362)
-
포인터(Pointer)에 대하여
- 포인터의 정의 포인터란 주소 값을 저장하는 변수를 뜻합니다. - 주소 값이란? 그럼 주소 값이란 무엇일까요? 주소 값의 정의는 데이터가 저장된 메모리의 시작하는 주소를 의미합니다. 이렇게만 말하면 감이 잘 오지 않을 겁니다. 아래에 나와있는 그림이랑 같이 설명을 덧붙혀보겠습니다. int형 변수 a를 선언하고, 여기에 11을 대입한다고 하면 비어있던 메모리의 구조는 그림과 같이 바뀔 것입니다. 그럼 여기서 주소 값은 무엇일까요? 바로 0x01입니다. int형 자료는 메모리에서 4byte만큼의 공간을 차지합니다. 현재 a가 차지하고 있는 메모리는 0x01~0x04까지인데, 여기서 시작 주소는 가장 처음에 나오는 주소를 뜻하는 것이니 0x01이 되는 것입니다. - 포인터에서 쓰이는 연산자 포인터에서 쓰이는..
2021.05.12 -
file-download-1 풀이
항상 하던대로 웹사이트 접속 + 문제 파일 다운로드 웹페이지 메인화면에는 파일이 아무것도 없는게 정상입니다. 문제를 풀고 나서 이 게시글을 작성하는거라 제가 만들었었던 게시글이 메인 화면에 보이는거죠. 우선 코드를 먼저 보겠습니다. 코드에는 index, upload_memo, read_memo 이렇게 세 가지 함수가 들어있습니다. index는 보니 별다른 내용이 없는 것 같습니다. 중요하게 봐야할 부분은 upload_memo와 read_memo입니다. upload_memo에서 if filename.find('..') != -1: 이라는 부분이 있습니다. 파일 이름, 그러니까 우리가 업로드 할 게시글의 제목에 ..이 포함 되어 있는지 확인하는 if문입니다. 여기서 궁금증이 하나 들 것입니다. "다른 것도 ..
2021.05.09 -
simple_sqli 풀이
우선 항상 하던대로 접속정보를 따라 웹페이지에 접속하고 문제 파일을 다운받았습니다. 이번 문제 역시 Python 파일입니다. 로그인을 하기 전에 우선 코드를 보겠습니다. 코드 하단 부분에 if userid=='admin': 라는 부분이 있습니다. 우리가 로그인 해야 할 관리자 계정의 id는 admin으로 고정되어 있다는겁니다. res = query_db(f'select * from users where userid="{userid}" and userpassword="{userpassword}"') 라는 부분은 우리가 로그인 할 때 쓰여지는 쿼리문을 나타냅니다. 여기서 {userid}를 admin으로 바꿔 작성해보면 res = query_db(f'select * from users where userid=..
2021.05.08 -
오답노트-2
문제 10명의 사람들이 순서대로 줄을 서 있다. 앞에 있는 사람부터 차례대로 가지고 있는 구슬의 수가 10, 13, 26, 11, 15, 12, 18, 13, 25, 7개이다. 사람들이 가지는 구슬의 개수를 모두 같게 하기 위하여 분배작업을 수행하려 한다. 분배작업 1회는 다음과 같다. 어떤 한 명이 인접한 한 사람에게 자신이 가지고 있는 구슬 중 일부를 준다. 모든 사람이 같은 수의 구슬을 가지게 하는데 필요한 분배작업의 최소 횟수는 얼마인가? 풀이 [10, 13, 26, 11, 15, 12, 18, 13, 25, 7] 이 구슬들을 모두 더하면 150이고, 이를 사람의 수인 10으로 나누면 15가 된다. 위 과정을 통해 한 사람에게 주어져야할 구슬의 수는 15임을 알아낸 것이다. 이제 왼쪽에서 오른쪽의..
2021.05.06 -
오답노트-1
문제 이차원 평면의 원점 (0, 0)에서 시작해서 한 번에 왼쪽, 오른쪽, 위쪽, 아래쪽 중 한 방향을 마음대로 정해 그 방향으로 거리 1만큼 이동하려고 한다. (0, 0)에서 한 번의 이동으로 갈 수 있는 곳은 (0, 1), (1, 0), (0, -1), (-1, 0)으로 모두 네 점이다. 그렇다면 정확히 10번 이동해서 도달할 수 있는 서로 다른 점의 개수는 몇 개인가? 풀이 이런 식으로 그림을 그려 확인해보면 규칙이 두 가지 보인다. 1. 최대로 갈 수 있는 경우는 (10,0), (-10,0), (0,10), (0,-10)이다. 2. 좌표값의 합의 절댓값이 짝수인 경우에만 갈 수 있다. 2번 규칙에 주목을 해서 문제를 풀어보면 식은 아래와 같다. (10+8+6+4+2)*4+1 (10 이하의 모든 좌..
2021.05.02 -
임베디드(UART 찾기, 칩 종류/역할)
- UART란? 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종 보통은 4핀의 형식으로 구성 되어있다. (*VCC, *RX, *TX, *GND) * 전압 공급(전원 핀) * 데이터 수신 핀 * 데이터 송신 핀 * 보드의 기준 전압을 맞춰주는 핀(그라운드라 부른다) UART의 핀 구조도 알았겠다, 이제 위에 있는 보드 사진에서 어느 부분이 UART 핀인지 알 수 있을 것이다. 사진에서 중앙에서 왼쪽으로 조금 가보면 위와 같이 4핀으로 구성된 무언가를 끼우는 핀홀이 있을 것이다. 이 홀이 UART 홀이다. - 무슨 칩일까?(1) 처음에 보곤 무슨 칩인지 잘 모르겠어서 2분 정도는 고민을 했다. 그러다 칩에 써져있는 MEDIATEK가 회사명, 아래에 적혀있는 것들이 모델명..
2021.04.20