클린 코드(Clean Code) 책 후기
·
CS/소프트웨어 책 후기
지난 실용주의 프로그래머 책을 읽고 나서 후기를 작성했었습니다.실무 팀 투입 후 2주가 넘어선 시점에서 책 2권을 받았는데, 실용주의 프로그래머와 클린 코드 책이었습니다.실용주의 프로그래머 후기:[실용주의 프로그래머 정리와 개인적인 후기실무 팀 투입 후 2주 정도가 되었을 때, 팀장님으로부터 책을 추천 받아 읽게되었습니다.책을 읽고 책에 나오는 팁들에 대한 정리와 저의 견해를 남겨두었습니다. 실용주의 프로그래머 정리와 개인적인 후기실무 팀 투입 후 2주 정도가 되었을 때, 팀장님으로부터 책을 추천 받아 읽게되었습니다.책을 읽고 책에 나오는 팁들에 대한 정리와 저의 견해를 남겨두었습니다.1장. 실용주의 철학Tip1. 자신의curihus.tistory.com 위 글을 적으면서 책 읽는 시간 보다 검색하고..
실용주의 프로그래머 정리와 개인적인 후기
·
CS/소프트웨어 책 후기
실무 팀 투입 후 2주 정도가 되었을 때, 팀장님으로부터 책을 추천 받아 읽게되었습니다.책을 읽고 책에 나오는 팁들에 대한 정리와 저의 견해를 남겨두었습니다.1장. 실용주의 철학Tip1. 자신의 기여(craft)에 관심을 가져라.소프트웨어 개발을 잘하고 싶지 않다면 다른 업계를 가라.Tip2. 자기 일에 대해 생각하라.본인이 무엇을 하고 있는지 항상 생각해라.비판적으로 생각하고 기계적으로 일하면 안 된다.Tip3. 당신에게는 에이전시(agency)가 있다.여기서 에이전시는 영어 사전에 의하면 "the ability to take action or to choose what action to take", 즉 주체적으로 원하는 행동을 고르고 행할 수 있는 능력을 의미합니다.문제를 고치기 위해 생각하고 뒤쳐지..
[백준] 2133번: 타일 채우기 C++ 풀이
·
코딩테스트/백준(BOJ)
문제문제 분류다이나믹 프로그래밍(동적 프로그래밍)📌 풀이 방법먼저 N이 2로 나누어지지 않는 경우는 타일을 완벽하게 채울 수 없습니다.N을 천천히 늘려가며 칸수를 채우는 방식을 계산해보겠습니다. N=2, 방법 3가지는 아래와 같습니다.위 3가지 외에는 방법이 없으므로 dp[2] = 3입니다. N=4인 경우dp[2]: 2칸을 채우는 경우(3)dp[4] = dp[2] * dp[2] 로 나타낼 수 있습니다. N=6인 경우먼저, dp[4] * dp[2] 를 더합니다.이는 4칸의 블럭을 채우는 방법 * 2칸의 블럭을 채우는 방법입니다. 이후, 2칸을 먼저 채운 후 4칸을 채우는 방식인데, 이때 4칸을 채울 경우를 dp[4]로 계산하지 않고 '2' 로 계산합니다.이유는 dp[4]로 계산할 시 위에서 dp[4] *..
[백준] 13144번: List of Unique Numbers C++ 풀이
·
코딩테스트/백준(BOJ)
문제문제 분류투 포인터📌 풀이 방법먼저, 예제 2번을 보면 5개의 숫자가 1, 2, 3, 1, 2 로 배열을 이루고 있습니다.이 경우에서 연속한 배열을 뽑았을 때 중복이 없는 경우는 아래와 같습니다.1, 12, 1232, 23, 2313, 31, 3121, 122 위와 같은 구성으로 이루어지며 이 경우를 보면 시작하는 수(start)로 부터 중복되는 수(end)가 등장하는 순간까지의 경우를 모두 더하면 됩니다.즉, 각 start마다 end - start 만큼의 경우가 존재한다는 의미입니다.그러니 우리는 start 인덱스를 0부터 N-1까지 진행하면서 중복되는 수가 있는지 확인하면 됩니다.0부터 N-1 인덱스를 순차적 탐색한다.각 인덱스를 탐색하는 중간에 중복되는 수를 확인한다.중복되는 수가 없다면 en..
19236번 백준: 청소년 상어 C++
·
코딩테스트/백준(BOJ)
문제 정보https://www.acmicpc.net/problem/19236 삼성SW역량 문제 중 하나로 구현, 시뮬레이션, 백트래킹 문제입니다. 백트래킹의 개념을 알고 있다면 구현만 잘하면 됩니다.카카오 공채 코테를 본 후 시뮬레이션 문제를 빠르게 풀기 위해 이 문제를 풀었는데 디버깅까지 2시간이 걸렸습니다. 해결 방법저는 구현, 시뮬레이션이 복잡한 문제를 해결할 때 최대한 여러 함수로 나누어서 해결하려고 노력합니다. 위에 문제를 예시로 들면- 상어, 물고기 구조체를 공통으로 저장하는 SeaLife 라는 구조체 생성- 물고기 간 위치 변경 함수(Exchange) : 지금 보니 Swap이 더 어울리는 표현이네요.- 물고기가 움직이는 함수- 상어가 물고기를 먹는 함수 물론 실제 서비스나 게임 등에 적용해..
C#의 데이터 형식
·
CS/이것이 C#이다
값 형식(Value Type): 값 형식은 변수가 값을 담는 데이터 형식-> 스택 메모리 영역에 저장된다.스택 메모리 영역은 코드 블록을 닫는 중괄호 }를 만나면 변수들이 메모리에서 제거됩니다.참조 형식(Reference Type): 참조 형식은 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식-> 힙 메모리 영역에 저장된다.저장된 메모리를 스스로 제거하지 않는다CLR의 가비지 컬렉터(Garbage Collector)가 힙에 더 이상 사용하지 않는 객체가 있으면 쓰레기로 간주하고 수거하는 기능을 한다.그렇다면 힙 메모리는 왜 사용하나?스택에 쌓인 데이터는 코드 블록이 사라지는 시점에 함께 제거된다.그래서 언제든 살려둘 수 있는 메모리 영역을 CLR이 제공한다.참조 형식의 변수는 힙, 스택 ..
CuriHuS
CuriHuS Blog