본문 바로가기

728x90

C

[IT/리뷰] 임베디드 C를 위한 TDD 임베디드 C를 위한 TDD : 네이버 도서 (naver.com) 임베디드 C를 위한 TDD : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 약 10년 전에 나온 책이다. 지금까지 유명한 개발자들의 서적들을 읽으면서 공통적으로 느낀 점이 있다. 오래된 책이기 때문에 오래된 코드임에도 언어 상관없이 정말 코드들이 깔끔하다는 것이다. 이 책 또한 그렇다. 정말 간단한 코드지만, 누구나 쉽게 간단하게 짜지는 못한다는 것을 항상 느끼고 감탄하게 된다. 이 책에서는 TDD를 정말 쉽게 접근할 수 있게 알려준다. 처음부터 TDD를 시작하는 방법을 한 스텝씩 따라가면서 알려준다. 그게 끝이 아니다. TDD를 함에 있어서 중요한 내용들도 알려주고, 난이도 있는 방식까지 .. 더보기
[백준알고리즘] 11660번: 구간 합 구하기 -C++ [백준알고리즘] 11660번: 구간 합 구하기 -C++ 11660번: 구간 합 구하기 5 (acmicpc.net) 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 오랜만에 DP 문제를 풀어봤다. 그래서 쉬운 난이도를 골랐는데, 너무 쉬운 걸 고른 것 같기도 하다. DP는 점화식만 잘 구하면 쉽게 문제를 풀 수 있다. 이 문제에서는 2개의 점화식을 구해야 한다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제 풀이 이번 문제는 행렬의 \((x1, y1)\)부터 .. 더보기
[백준알고리즘] 18870번: 좌표 압축 -C++ [백준알고리즘] 18870번: 좌표 압축 -C++ 18870번: 좌표 압축 (acmicpc.net) 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 좌표 압축 문제를 풀었는데.. 오랜만에 푸느라 헤더 관련해서 하나도 기억이 안 난다. 그래서 실버 등급 문제임에도 시간 초과로 인해 다른 글을 찾아보고 풀 수 있었다. 2가지 정도의 풀이 방법이 공유되고 있었는데, 그중 하나의 방법을 이용해서 문제를 해결했다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제.. 더보기
[백준알고리즘] 2579번: 계단 오르기 -C, Python [백준알고리즘] 2579번: 계단 오르기 -C, Python https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 www.acmicpc.net 이전에 풀었던 문제인데 새로 풀어보았다. 이전에 C로 풀었었는데 포스팅을 안 해서 같이 올리려.. 더보기
[백준알고리즘] 10866번: 덱 -C [백준알고리즘] 10866번: 덱 -C https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘쨰 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 이번 문제는 덱을 직접 구현하는 문제이다. 그래서 문제를 보기 전에는 그냥 파이썬이나 자바로 풀 생각을 해봤는데 오랜만에 링크드 리스트를 만들어 볼 겸 C로 작성을 했다. 일단 링크드리스트를 만들기 위해서 구조체를 만들어 주어야 한다. 구조체 멤버로 data와 링크를 걸 노드들을 가리킬 next, previ.. 더보기
[백준알고리즘] 11051번: 이항계수 2 -C [백준알고리즘] 11051번: 이항계수 2 -C https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 이번 문제도 이전 문제와 같이 이항 계수문제이다. 하지만 범위가 훨씬 더 커졌기 때문에 아까와 같은 방식으로 하려고 하면 int의 범위를 넘어서 overflow를 일으킬 것이다. double의 경우는 해보지 않았지만 속도가 느릴 것이다. 하지만 여기서는 모듈러 연산(Modular Arithmetic: 나머지 연산)을 이용해서 int범위 안에서 돌아가도록 할 것이다. 문제를 주었을 때 10007로 나눈 나머지를 구하라고 .. 더보기
[백준알고리즘] 11050번: 이항계수 1 -C [백준알고리즘] 11050번: 이항계수 1 -C https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 이항 계수의 문지입니다. 이 문제는 범위가 짧기 때문에 이항 계수의 식을 그대로 넣어서 풀어주도록 합니다. nCk = n! / (k! * (n-k)!) 이때 저는 범위만큼 팩토리얼을 배열에 저장을 한 후 가져다가 쓰는 방식을 사용했습니다. #include int factorial_arr[11]; void factorial(void); int main(void){ int N, K; scanf("%d", &N); scanf("%.. 더보기
[백준알고리즘] 3036번: 링 -C [백준알고리즘] 3036번: 링 -C https://www.acmicpc.net/problem/3036 3036번: 링 문제 상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다. 상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌아간다는 사실을 발견했다. 나머지 링은 첫 번째 링 보다 빠르게 돌아가기도 했고, 느리게 돌아가기도 했다. 이렇게 링을 돌리다 보니 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 도는지 궁금해졌다. 링의 반지름이 주어진다. 이때, 첫 번째 링을 한 바퀴 돌리면, www.acmicpc.net 이 문제는 간단했습니다. 출력은 (첫번째 링의 반지름 / i번째 링의 반지름)을 약분해서 구하면 됩니다. .. 더보기

728x90