9461 백준 문제풀이 (C언어)
자료구조와 알고리즘/알고리즘2021. 4. 29. 17:449461 백준 문제풀이 (C언어)

https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 공통적인 문제풀이는 동적계획법으로 구현을 하면 되며, 구조를 제대로 보고 규칙이 어떤 것인지 확인하면 된다. 여기 문제에서의 규칙은 arr[N] = arr[N - 1] + arr[N - 5] 의 값인 구조인데, 배열로 값을 저장하지 않고, 아래와 같이 구현하였다. long long 으로 한 이유는 arr[N] 값이 int 의 값을 넘어 가기에 이렇게 적게되었다. 사실 저번의 코드를 보게되니 이번 문제는..

Life style2021. 4. 28. 17:05무엇을 해야 될까?

사실 항상 고민하는 주제이다. 내 스타일은 집을 되게 싫어한다. 예전에 좋아했던 게임도 이제는 흥미를 잃었고 그렇다고 안하진 않음 드라마나 영화도 재밌는 게 없다면 보지 않기에 지금은 되게 집에 있는 시간이 너무 무의미하게 흘러가는 거 같다. 그리고 집에서는 집중이 잘 되지 않아서 꼭 공부를 하거나 어디 집중을 하려면 카페같이 살짝의 소음이 있는 장소를 가게 된다. 지금도 카페에서 공부를 한다. 백준의 문제를 다른 사람의 코드를 파헤치고 이해하며 구현도 해보았다. 그리고 어제 보았던 유튜브에서는 꾸준하고 내가 보여줘야 하는 것들에 대해서 보자면, 블로그와 깃 허브라는 글을 보았다. 일명 잔디심기, 아직은 정확히 어떻게 하는 것인 지는 모르지만 이번 주 내로 하는 방법과 어떻게 쓰여야 하는 지 알아볼 생각..

1904 백준 문제풀이 (feat. 동적계획법)
자료구조와 알고리즘/알고리즘2021. 4. 28. 16:541904 백준 문제풀이 (feat. 동적계획법)

https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 동적계획법 : 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용한다. 피보나치 수열을 보게 되면, 계속 반복되는 구조로 무수한 계산을 해야한다. 재귀함수를 통해서 코드를 간략하게 하고 반복문을 사용하지 않도록 구현을 할 수 있다. 단점으로는 메모리를 많이 차지하게 ..

42seoul 최종합격 그리고 github
Life style2021. 4. 24. 14:5942seoul 최종합격 그리고 github

늦은 나이 시작이라, 조금은 더 힘들게 체력을 갈아넣은 거라 생각을 했다. 아직도 나는 미흡하고 계속 배움을 갈구해야 하며, 그것을 남보다 차이많은 만큼 더 결과물을 내야 하기에 미리 시작을 한다. 어제는 하루 아무것도 안하였지만, 오늘은 카페에 나와 그 전에 풀어보지 못한 C10을 시도한다. 사실상 구글에서 찾으면 무슨 문제가 나오는 지 어떻게 해야 해결이 가능한 지 답은 나오지만, 거기에서 필요한 것들은 결국 내가 충분히 알아야 하는 makefile과 기존의 라이브러리를 구현해야 하는 것이기에 이러한 것에 답을 예습하기 보다는 어떻게 기본을 가지고 놀 수 있는 지 집중을 하기 시작했다. cat의 구현 그리고 >, >> 에 대한 옵션까지 일단락은 마친 것 같고 이제 다음 문제를 풀어본다. 나의 삶은 꾸..

42 Seoul2021. 4. 22. 18:15[42Seoul] cat 구현하기

cat 파일 및 표준 입력의 대용을 그대로 표준 출력에 출력하는 명령어 cat 1.txt 위와 같이 사용하면 파일을 읽어와서 출력하게 된다. cat > 2.txt 위와 같이 사용하게 되면 하단에 입력을 할 수 있게되며, (ctrl + d) 를 눌러서 입력을 종료하면 2.txt 파일에 입력받은 내용이 저장된다. cat >> 2.txt 위와 비슷하나 다른 점은 문자열 맨 뒤에 붙여넣기 하는 방식이다. 하단에 입력을 하고 나면 기존에 있던 내용 뒤에 새로운 문자열을 붙여넣게 된다. 알아야 하는 문자열 함수 strcat : 기존 문자열 뒤에 붙여넣기 새로운 문자열을 붙여넣기 strcpy : 기존 문자열을 지우고 새로운 문자열로 복사하기 아래에서 open() 함수에서 사용되는 O_CREAT 는 파일 생성, O_T..

42 Seoul2021. 4. 22. 14:17[42Seoul] basename 이름만 보이는 함수

#include char *basename(char *path); : path가 파일 정보로 파일명만 얻을 수 있는 함수 cat 함수를 구현하기 위해, 사용을 하기 위한 함수 사용 이유는 파일 오류를 출력할 때 보면, cat 파일 이름만 표시가 되기 때문에 사용될 예정 ex) 더보기 #include #include char *path = "/usr/download/test.txt"; printf("%s\n", basename(path));

42 Seoul2021. 4. 20. 11:48[42Seoul] errno.h 변수를 이용한 오류처리

: errno.h 헤더 파일에 정의도니 전역 변수 errno 를 사용하여 오류에 대한 이유를 알기 위해서 사용된다. errno 변수는 다른 함수를 실행하면 값이 변경, 여러 번 호출할 경우에는 값을 유지시키기 위해 변수를 이용해서 유지시켜줘야 한다. 함수 호출 직후에만 유효 strerror() #include char * strerror (int errnum); : 표준 에러 메시지를 출력하게 된다. use) 더보기 puts(strrerror(errno)); 만약 지정된 파일이나 디렉토리가 없을 시, ENOENT = 2 No such file or directory 에러 메시지가 나오게 된다.

42 Seoul2021. 4. 20. 10:40[42Seoul] makefile

: 여러 컴파일들이 존재하고 버젼이 달라질 텐데, 자동적으로 수동된 걸 체크하고 실행파일을 생성하는 명령어 컴파일 → 어셈블리어로 변환 : C → O (object file) , 여러 목적파일들을 링킹, 그리고 하나의 파일로 합치는 작업 파일을 수정하면 관련 자료에 대해서 모든 걸 하나씩 오브젝트 파일로 만들어줘야 하는데 Make 를 통해서, 좀 더 빠르게 컴파일 할 수 있도록 하기 위해서 사용을 하고 있다. 확장자 규칙 .SUFFIXES .SUFFIXES : .c .o 주의 깊게 처리할 파일들의 확장자를 등록 1. 매크로 OBJ=test.o test1.o write.o CC=gcc CFLAGS=-c TARGET=test $(TARGET): $(OBJ) $(CC) -o $(TARGET) $(OBJ) cl..

image