본문 바로가기

728x90

전체 글

[백준알고리즘] 1802번: 종이 접기 -C++ [백준알고리즘] 1802번: 종이 접기 -C++ 1802번: 종이 접기 (acmicpc.net) 1802번: 종이 접기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 1000보다 작거나 같은 자연수이다. 둘째 줄부터 T개의 줄에 각각의 종이가 어떻게 접혀있는지가 주어진다. 종이의 정보는 문자열로 주어지며, 1 www.acmicpc.net 문제만 읽었을 때는 되게 어려운 문제라고 생각했다. 문제를 푸는 방법을 찾았을 때도 시간 초과가 괜찮을지 걱정했었는데 여유로운 시간이었다. 정답 비율만 보고 살짝 어려운 문제인가 싶었는데 실버 문제는 실버 문제였다. 분할 정복으로 분류되어 있는데, 분할 정복인가.. 싶긴 하다. 문제 풀이 문제의 내용은 사실 대부분이 불필요한데 괜히 길다. 아무튼 원룡이가 막 접었.. 더보기
[IT/리뷰] Clean Code Clean Code(클린 코드) : 네이버 도서 (naver.com) Clean Code(클린 코드) : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 저번 에 이어서 를 읽었다. 이 책에서도 에 대한 내용을 소개하고 있는 만큼 책은 훌륭했다. 그런데 역시 꽤나 좋았다. 다만 개인적으로는 에서도 단계적으로 깔끔한 코드를 작성하는 방법을 설명해준 것이 더 좋았다. 도 단계별로 설명을 해주기는 하나, 이 더 직관적이었던 것 같고 그만큼 더 쉽게 읽혔다. 는 읽는데도 좀 오래 걸렸다. 그리고 첫 장부터 커닝험, 부치, 비야네 등 유명한 사람들이 정의한 클린 코드를 설명해주는데 이런 것들이 신기했다. 이 사람들끼리는 서로 친할까 궁금하기도 하고 공부할 때 들어본 .. 더보기
[백준알고리즘] 2470번: 두 용액 -C++ [백준알고리즘] 2470번: 두 용액 -C++ 2470번: 두 용액 (acmicpc.net) 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 골드 5의 문제다. 정답 비율도 낮아서 생각보다 어렵나 하고 풀었는데 생각보다 훨씬 쉽게 풀리긴 했다. 예전에 비슷한 느낌의 문제를 푼 적이 있던 것 같은데, 그 덕분인지는 모르겠다. 전부터 골드 5의 문제들이 적당히 난이도 있고 풀기에 좋았던 것으로 기억한다. 그래서 진짜 어려운 문제는 아니었을 수도 있다. 문제 풀이 문제에서는 여러 .. 더보기
[백준알고리즘] 10867번: 중복 빼고 정렬하기 -C++ [백준알고리즘] 10867번: 중복 빼고 정렬하기 -C++ 10867번: 중복 빼고 정렬하기 (acmicpc.net) 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 사실 이번 문제는 굉장히 쉬운 문제다. 정렬 알고리즘이라고 해서 풀려고 했는데, 너무 민망할 정도의 문제다. 그래서 글을 따로 작성하지 않으려다가 그냥 기록용으로 남긴다. 문제 풀이 문제에서 요구하는 조건 중에 주목할 것은 오름차순 정렬과 중복을 제거하는 것이다. 가장 먼저 생각이 든 것은 C++의 set를 이용하는 방식이다. set는 JAVA의 HashSet과 유사한 개념이다.. 더보기
[디자인패턴][구조패턴] 데코레이터 Decorator - C++ [모던 C++ 디자인 패턴] 책을 바탕으로 공부하는 내용을 정리한 내용이다. Decorator pattern 동료가 작성한 클래스 기반으로 기능 확장을 한다고 해보자. 원본 코드를 수정하지 않고 기능을 추가하기 위한 방법 중에서 상속이 생각날 수 있다. 하지만 항상 이렇게 작업할 수 있지는 않다. 상속을 할 수 없는 여러 사정이 있을 수 있다. 무엇보다 수정하는 이유가 여러 가지인 경우에는 단일 책임 원칙(SRP)을 위반하는 것이기 때문이다. Decorator 패턴은 이미 존재하는 타입에 새로운 기능을 추가하면서도 원래 타입의 코드에 수정을 피할 수 있도록 해준다. OCP를 준수하는 것이다. 시나리오 여러 개선 작업이 필요한 상황을 생각해보자. 도형을 기반으로 색상이 있는 도형과 투명한 도형을 상속받아 .. 더보기
[디자인패턴][구조패턴] 컴포지트 Composite - C++ [모던 C++ 디자인 패턴] 책을 바탕으로 공부하는 내용을 정리한 내용이다. Composite Pattern 보통 공부할 때 Aggregation 관계와 Composite 관계는 생명주기에서 다르다고 말을 한다. 하지만, 이 책에서는 두 개를 서로 동등한 것으로 취급한다. 객체가 복수의 구성 요소로 이루어져 있다는 것을 의도적으로 사용자에게 알려줄 방법은 많지 않다. 우선, 명시적으로 멤버 변수에 대한 getter/setter를 노출하는 방법이 있다. 이때, begin/end 반복자와 같은 것으로 구성 요소의 집합이라는 것을 알려야 한다. 다른 방법으로는 컨테이너 타입을 상속받는 것이다. 하지만, STL 컨테이너는 virtual 소멸자가 없기 때문에 소멸자를 쓸 일이 없어야 한다. Composite 패턴.. 더보기
[백준알고리즘] 2589번: 보물섬 -C++ [백준알고리즘] 2589번: 보물섬 -C++ 2589번: 보물섬 (acmicpc.net) 2589번: 보물섬 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 www.acmicpc.net 문제를 봤을 때 브루트 포스인가? 단순히 최단거리는 못 구하는데? 일단 해보자! 했다. 예전에는 너무 최단거리 문제만 풀다가 브루트 포스 문제 여부를 감을 잡지 못했었는데, 지금 오히려 눈이 넓어졌나보다. 골드라고 해서 살짝 쫄았는데 정답 비율은 생각보다 높았다. 어쩐지 어렵진 않더라.. 문제 풀이 문제는 브루트 포스 방식을 사용하면 된다. 그리고 그래프 탐색을 사용하면 된다... 더보기
[컨퍼런스] NDC(Nexon Developer Conference) (2022/06/08~06/11) 이번에는 NDC(NEXON DEVELOPER CONFERENCE) 후기를 작성해보고자 한다. 컨퍼런스 시작할 시점에는 바빠서 직접 듣지 못했지만, 아직 온라인에 많은 세션들이 올라와있다. 일부 세션만 영상이 내려간 상태라고 한다. NDC-NEXON DEVELOPERS CONFERENCE NDC-NEXON DEVELOPERS CONFERENCE ndc.nexon.com NDC를 이번에 보긴했지만, 컨퍼런스 전에 세션 목록을 보고 기대하고 있던 컨퍼런스였다. 다행히 아직도 많은 세션이 온라인으로 있었다. 보고 싶은 세션만 골랐는데도 10개나 골랐다. 그중에 오늘은 개발 관련된 5개 세션에 대해서 요약 및 후기를 작성하고자 한다. 나머지 5개는 개발이라기보다는 경력/운영/마케팅 등에 대한 세션이다. 이 세션들.. 더보기

728x90