전체 글

코딩하는 대학생에서 개발자까지
백준(S5) 10814번: 나이순 정렬 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 정렬문제다. 그런데 나는 정렬을 사용해 풀다가 포기하고 브루트포스 알고리즘 처럼 문제를 풀었는데 풀렸다. 정렬을 사용 안하고 푼 정렬..? 홍철 없는 홍철 팀 같다 출력:첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다. 요즘 항상 무슨 함수를 사용할지 모르기때문에 헤더는 stdio,stdlib,string을 사용하는것 같다. 입력받는것이 나이와 이름이므로 구조체를 이용했다. 1 2 3 4 5 6 7 #include #include #include typedef struct p { int age; char name[201]; }w; cs 메인 함수에서는 회원의 수를 입력받고,..
백준(S3) 11399번 ATM (C언어 C11 C99)
코드를 보기전에: 필자는 이 문제를 퀵정렬을 이용해 풀었다 다른 함수로 푸는걸 보고싶은 분들은 다른 블로그의 글을 보기 바란다. 출력:첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 첫번째 사람이 돈을 인출하는데 3분이 걸리고 두번째 사람은 인출하는데 2분이 걸린다고 하자. 그러면 첫번째 사람은 인출하는데 3분이 걸리고, 두번째 사람은 인출하는데 (3+2)분이 걸린다. *첫번째 사람이 인출할때 뒤에서 기다리기 때문. 그래서 정렬을 이용해 오름차순으로 나열하면 최솟값을 구할수 있다. 코드를 보면서 하나하나 설명하겠다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ..
C언어 스택 <자료구조> (C언어 C11 C99)
스택을 영어로 설명하면 first in last out이라고 한다. 나는 이 말을 듣자마자 공병이 떠올랐다. ptsd와 함께. 쓸데없는 소리는 여기까지 하고, first in last out을 알아듣게 설명하자면 먼저 입력을 한 값이 나중에 나오고, 나중에 입력된 값이 먼저 나온다는 소리다. 출력할 때는 위에서부터 하고 입력할 때는 쌓아 올리는 형식으로 한다는 말이다. ㅇ스택 문제를 풀 때는 4개의 함수가 필요하다. - 공백상태를 검사하는 함수 - 포화상태를 검사하는 함수 - 삽입하는 함수 - 배출하는 함수 공백상태를 검사하는 함수를 설명하겠다. top이란 변수를 호출했다. top은 삽입을 하면 1씩 커지고, 배출을 하면 1씩 작아지는 변수다. 그러므로, 공백상태를 검사하는 함수에서 top이 0보다 작으..
C언어 구조체 정리 (C언어 C11 C99)
구조체 , 구조체 포인터, TYPEDEF에 대해 설명하겠다. 1. 구조체는 밑에 있는 그림처럼 키워드 그리고 구조체 이름을 통해 정의한다. 그리고 안에 필요한 정보가 담긴 구조체의 멤버 변수를 적는다. 그 후, 메인 함수에서 구조체 변수를 생성후 (구조체변수.구조체의 멤버 변수)이런 식으로 호출을 한다. 1 2 3 4 5 6 7 int main() { struct book harry; harry.title = "harry potter"; harry.author = "J. K. Rowling"; harry.price = 18500; } Colored by Color Scripter cs 2. 구조체 포인터 구조체 포인터는 구조체와 같이 구조체를 정의 한뒤, 메인함수에서 달라진다. 메인함수에서 구조체 변수를..
백준(B3) 2747번: 피보나치 수 (C언어 C11 C99)
코드를 보기 전에: Dynamic Programming(동적 계획법)에 대해 안다면 이 문제는 쉽게 풀수 있을것이다. 이 문제가 왜 시간초과가 나는지 모르는 사람은 밑에 있는 코드를 보고 다시 한번 도전해보길 바란다. 1 2 3 4 5 6 7 8 9 10 11 int n[46]; int fibo(int x) { n[0] = 0; n[1] = 1; for (int a = 2; a
백준(S4) 10773번: 제로 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 Last in First out 스택 문제다. 보통의 사람들은 이 문제를 함수로 풀었지만, 나는 다르게 풀었다. 나는 배열 하나를 추가로 만들어서 풀었다. 예제 문제를 예시로 들자면, 1,3,5,4,0,0,7,0,0,6이란 숫자가 입력됐다. 반복문을 만들어서 입력받은 숫자가 0이 아니면 다른 배열에 추가시키도록 했다. 1 3 5 4 1 2 3 4 5 6 7 for (int a = 0; a
코딩하는_대학생
코딩하는 대학생에서 개발자까지