본문 바로가기

분류 전체보기

(26)
프로그래머스 코딩테스트 입문 DAY5 첫번째 - 옷가게 할인 받기 머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요. ​ 입출력 예 price result 150,000 142,500 580,000 464,000 int solution(int price) { int answer = 0; if(price>=500000) answer = price*0.8; else if(price>=300000) answer = price*0.9; else if(price>=100000) answer = price*0.95; else answer = price; return..
프로그래머스 코딩테스트 입문 DAY4 첫번째 - 피자 나눠 먹기(1) 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. ​ 입출력 예 n result 7 1 1 1 15 3 int solution(int n) { int answer = 0; int i; for(i=1;i=n) break; } answer=i; return answer; } i(피자 판 수)가 하나씩 증가하고 i*7이 n이 넘으면 바로 브레이크문을 통해 반복문을 빠져나오면 된당 ​ ​ 두번째 - 피자 나눠 먹기(2) 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변..
프로그래머스 코딩테스트 입문 DAY3 첫번째 - 나머지구하기 정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요. ​ 입출력 예 num1 num2 result 3 2 1 10 5 0 ​ int solution(int num1, int num2) { int answer = -1; answer = num1%num2; return answer; } 그냥 % 연산자 써주면 된당 ​ ​ 두번째 - 중앙값 구하기 중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를..
프로그래머스 코딩테스트 입문 DAY2 방학을 맞이해 해볼만한 일을 찾던 중 ... 프로그래머스스쿨에 코딩테스트 입문이 잇길래 한 번 풀어봣당 ​ 그나마 배운게 C라서 C로 풀어봣다 자바 더 배우면 자바로도 풀어봐야지 ​ DAY1은 그냥 덧셈뺄셈이라 패스 ​ ​ 첫번째 - 두 수의 나눗셈 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요. ​ 입출력 예 num1 num2 result 3 2 1500 7 3 2333 1 16 62 ​ ​ int solution(int num1, int num2) { int answer = 0; answer = (double)num1/num2*1000; return answer; 요로케 풀엇다..
[리버싱]스택(Stack), 레지스터(Register), 스택 프레임(Stack Frame) 스택(Stack) 쌓다 라는 의미로 데이터를 차곡차곡 쌓아 올린 형태의 자료구조 제한적으로 접근할 수 있는 나열구조로 후입선출(LIFO)의 특징을 가지고 있습니다. 스택의 대표적인 사용 사례 웹브라우저 방문기록(뒤로가기), 실행취소(undo), 역순 문자열 만들기, 후위 표기법 계산 스택에 자료를 넣는 것을 push, 스택에서 데이터를 꺼내는 것을 pop이라고 합니다. 다음은 C언어를 사용하여 스택을 구현해 보았습니다. #include #define MAX_STACK_SIZE 10 int stack[MAX_STACK_SIZE]; int top = -1; int isFull() { if (top >= MAX_STACK_SIZE) { printf("스택이 가득 찼습니다."); return 1; } else ..
[리버싱] Binary & Analysis 리버스 엔지니어링이란? 완성품과 이를 구성하는 부품들의 기능과 설계를 고안하고 제작하는 엔지니어링 행위를 거꾸로 하는 것을 합니다. 리버싱은 학습 및 연구용으로 많이 이용되는 기술, 각종 악성코드나 불법 프로그램의 분석 및 대응을 위해서도 사용되는 효과적인 기술입니다. 그러나 프로그램의 전체적인 작동 원리를 알아낼 수 있어 상용 프로그램의 지적 재산권을 침해할 수 있다는 위험성도 존재합니다. 테스팅이나 연구, 학습 등을 목적으로 한 리버싱은 저작권을 침해하지 않는 한에서 제한적으로 허용되지만 저작권을 침해하는 행위는 법적인 문제로 이어질 수 있으니 주의가 필요하겠습니다. 바이너리(Binary)에 대하여 프로그램 : 연산장치가 수행해야하는 동작을 정의한 일종의 문서 많은 정보분야의 엔지니어들은 프로그램을 ..