반응형

전체 글 126

[Hive Helsinki / Piscine] BSQ

극악의 난이도로 유명한 BSQ, 굳이 도전하지 않는 사람도 많았고, 성패가 딱히 합격에 영향을 미치지 않는 듯싶은 프로젝트였다. (당연하다. 아무도 통과하지 못하기 때문이다.)  그래도 계속 c 프로젝트만 하고 있기에는 c 프로젝트의 난이도가 대체로 초심자에 맞춰 형성되어 있어서 나한테는 단순 반복 같이 느껴질 때가 많았다. rush 프로젝트들을 통과하지는 못했지만 하면서 가장 재밌다고 느꼈기 때문에, bsq 시작 전에 최대한 c 진도를 합격자들과 비슷하게 맞춰두고 남은 시간을 bsq에 쏟았다.   결론부터 말하자면, 통과하지 못할 코드로 팀원까지 두 번의 긴 평가를 받게 하기는 너무 미안해서 한 번 평가를 받은 후 포기했다. 여기에 게시하는 코드는 피신 이후 내가 수정한 코드이다.  그리고 끝까지 날 ..

[Hive Helsinki / Piscine] C08

C08은 전반적으로 헤더파일에 관한 내용이다. 헤더파일은 복수개의 파일을 컴파일하거나 작성할 때 같은 헤더나 선언을 여러 번 하지 않도록 도와준다. 해당 프로젝트는 헤더파일과 구조체에 대한 기초적인 이해를 가지고 풀 수 있다. 헤더파일 같은 경우 내용이 어렵지 않지만, 구조체는 처음 본다면 조금 헷갈릴 수 있는데, 사실 해당 프로젝트에서는 활용보다는 선언 정도를 하기 때문에 처음 익히기 어렵지 않을 것이다.    Exercise 00: ft.h Create your ft.h file.Allowed Function: None  첫 번째 문제는 간단히 주어진 프로토타입의 함수를 포함한 헤더파일을 작성하기만 하면 된다. 다만 42에서 헤더파일을 작성할 때에 주의해야 할 점이 몇 가지 있다.  첫 번째는 #if..

[Hive Helsinki / Piscine] Rush02

마지막 rush이자 가장 악명 높은 과제 중 하나인 rush02. 결론부터 말하자면 0%로 fail을 받았다. 평가를 받다가 malloc check을 한 번 안 한 게 발견되어서 결국 fail을 했다. 이후 코드도 좀 더 깔끔하게 고쳐서 다시 완성했다. 내가 테스트한 경우들에는 모두 작동했지만, 통과한 코드가 아니고, 고치는 과정에서 42norm에 맞지 않게 고친 것도 다수 있어서 참고만 하길 바란다.   <p da..

[Java] 네트워크 (Network)

자바 공부 중 네트워크에 관한 내용을 정리한 것에 대한 기록이다. 아래 책을 공부 중이다.신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121.   네트워크 기초  네트워크는 여러 컴퓨터들을 통신 회선으로 연결한 것으로, LAN(Local Area Network)와 WAN(Wide Area Network)가 있다. 우리가 흔히 말하는 인터넷은 WAN에 해당한다. 네트워크에서는 서버와 클라이언트가 데이터를 주고받는다.네트워크에서 서비스를 제공하는 프로그램을 서버(Server), 서비스를 요청하는 프로그램을 클라이언트(Client)라고 하는데, 클라이언트가 서비스를 요청하면, 서버가 처리하여, 다시 클라이언트에게 처리 결과를 응답하는 식이다.   1. IP 주소 IP(Internet ..

[Java] Thread Pool (스레드 풀)

자바 네트워크 구현 관련된 공부 중 Thread Pool에 관한 내용이 다시 헷갈려 정리한 것에 대한 기록이다. 아래 책을 공부 중이다.신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121.   Thread Pool 이란?  Thread Pool(스레드 풀)이란 작업 처리에 사용되는 스레드를 제한된 개수만큼 정해 놓고 작업 queue에 들어오는 작업들을 스레드가 하나씩 맡아서 처리하는 방식이다. 이는 병렬 작업 처리가 많아지면 스레드 개수가 폭증하여 CPU가 바빠지고, 메모리 사용량이 증가하여 결국 애플리케이션의 성능까지 저하되는 현상을 방지하기 위해 사용된다.  Thread Pool이 작동하는 방식은 다음과 같다. 우선 애프리케이션에서 스레드풀에 작업 처리 요청을 한다. 그러면 ..

[Hive Helsinki / Piscine] C07

C07의 경우 malloc, 즉 메모리 할당과 관련된 내용으로 이루어진다. 메모리 할당은 주로 배열을 사용하고 싶지만, 배열을 선언하는 시점에 배열의 크기가 확정되어 있지 않을 때 사용한다. 관련된 자세한 내용은 아래 글을 참조하시기 바란다. 나는 C언어 공부할 때 해당 교안을 위주로 공부했는데, 잘 정리되어 있어서 완독하고 나면 피신에 나오는 문제들의 난이도가 크게 어렵지 않게 느껴진다.https://modoocode.com/98" data-og-description="모두의 코드 씹어먹는 C 언어 - 작성일 : 2010-08-03 이 글은 94347 번 읽혔습니다. 안녕하세요. 여러분. 정말 멀리 달려 온 것 같네요. 벌써 제 20 " data-og-host="modoocode.com" data-o..

[Java] 스트림(Stream) 요소 처리

자바 공부 중 Stream에 대한 내용이 복잡하다고 느껴, 정리한 것에 대한 기록이다. 아래 책을 공부 중이다.신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121.    Stream(스트림) 이란?  Stream(스트림)은 for문이나 Iterator 외에 컬렉션 및 배열의 요소를 반복 처리 하기 위한 또 다른 방법 중 하나이다. Stream과 Iterator는 유사하지만 아래와 같은 차이를 가진다.1. 외부 반복자인 Iterator 및 for문과 달리 '내부 반복자'로 처리 속도가 빠르고 병렬 처리에 효율적이다.2. 람다식으로 다양한 요소 처리를 정의할 수 있다.3. 중간 처리와 최종 처리를 수행하도록 파이프 라인을 형성할 수 있다.   차이점들을 하나씩 보자. 우선 내부 반복..

[Hive Helsinki / Piscine] C06

C06의 경우 대체로 터미널로부터 입력을 받는 '프로그램'을 작성할 것을 요구한다. 따라서 이전에 요구된 프로토타입의 함수만을 포함했던 것과는 달리, 이 과제에서는 바로 실행 가능한 main 함수를 포함해야 한다. 우선 기본적으로 터미널로부터 입력받는 방법을 알아야 하는데, 이는 main 함수의 인자를 이용한다. int main(int argc, char **argv) 위와 같은 방식으로 사용되는데, int 타입의 argc는 입력받은 parameter의 개수이고, argv는 입력받은 parameter를 문자열로 저장한 것의 배열이다. argv가 two pointer인 이유는 문자열 자체가 이미 문자의 배열인데, argv는 문자열의 배열이 되어야 하기 때문이다. 만약 터미널에 아래와 같이 입력한다고 해보자..

[Java] Wrapper Class (래퍼 클래스, 포장 클래스)

자바 공부 중 Wrapper Class에 대한 내용이 헷갈려 정리한 것에 대한 기록이다. 아래 책을 공부 중이다. 신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121. 참고한 블로그 글들이다. https://medium.com/@s23051/%EB%9E%98%ED%8D%BC-%ED%81%B4%EB%9E%98%EC%8A%A4%EB%9E%80-wrapper-class-cc5aa6f7cdd1 래퍼 클래스란(Wrapper Class)? 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class… medium.c..

[Hive Helsinki / Piscine] Rush01

Rush01은 주어진 조건에 따라 1, 2, 3, 4의 높이를 가진 막대를 알맞게 배치하는 문제이다. 문제를 이해하는 데까지도 좀 어렵다고 느꼈고, 풀이하는 데는 더욱 오래 걸렸다. 결국 마지막에 사소한 실수와 malloc check를 하지 않은 문제들로 인해서 fail을 받았지만, 결국 출력을 할 수 있게 만드는 데에는 성공했다. 여기서 적는 방법은 피신 이후 내가 오류나 효율성을 고려해서 코드를 수정한 내용이다. 따라서 피신에서의 형식이나 규칙에 어긋나는 부분(금지 함수를 쓰는 등의 제한을 어긴 것은 아니지만, 띄어쓰기나 인자, row 수 제한 등의 규칙은 신경 쓰지 않았다)이 있을 수 있고, 따라서 문제의 접근 방식만 참고하는 편이 좋을 것 같다. 예시 input으로 문제에 대한 설명부터 해보겠다...

728x90
반응형