본문 바로가기

전체 글

(290)
수족냉증 개발자의 핸드워머(히팅패드) [내돈내산] 수족냉증이 심한 나는 여름에 에어컨이 때문에 손이 시려워서 괴롭다. 충전식 손난로를 사서 틈틈히 손을 데워주었으나 너무 자주해야하고 번거로워 어떤 상품이 없나 찾다가 이런식으로 된 장패드에 온열기능이 있는 제품과 이런식으로 덮여서 온열 기능이 있는 제품을 알게 되었고 패드는 결국 또 손을 붙이고 있어야만 따뜻할 것 같고 덮고있어야 바람도 막아줘서 좋을꺼같다고 하여 아래 제품을 구매했다 간단한 후기로 5점만점에 3점정도로 주고싶다 단점 1. 덮고있어도 바람이 새어 들어옴 2. 키보드를 보고 눌러야 하는 사람은 가려져서 불편함 3. 생각보다 따뜻하지 않음 공간의 공기자체가 많이 찬 경우 효과가 미미함 장점 1. 없는것보단 나음 진짜 수족냉증이 심해서 아쉬운사람은 구매 추천 2. 마우스도 같이 들어갈 수 있게..
C++로 Windows 환경에서 코드 동작 시간 체크 (feat. GetTickCount64의 오류) 코드를 작성하여 테스트하던 중 생각보다 속도가 느려서 어디서 시간이 딜레이되는지 확인해야 하는 경우가 종종있다. 기존 사내 프로젝트 전임자의 코드에서 GetTickCount64()를 쓴 흔적이 있길래 그대로 사용하여 로그를 찍어봤더니 대부분의 코드에서는 0ms으로 찍히나 일부 로그가 15~17ms로 찍히는것이 확인되었다. 대부분 같은 구간에서 찍혀서 해당 시간이 실제인줄 알았으나... GetTickCout64()는 IRQ(Interrupt Request) 즉 인터럽트 처리 시간이 발생하여 해당 로그가 찍힌것이였다. 이후 찾아보니 GetTickCout64()는 20ms이내의 수행시간일 경우 오차범위가 존재하였다. 나는 초당 60프레임의 비디오 데이터를 처리하는 로직을 테스트 중에 있었기에 16ms이내의 시..
Linux to Linux 파일 전송 (SCP) 지난번 Linux to Windows, Windows to Linux간의 파일전송을 포스팅 한 적이 있다. 2023.12.01 - [운동하는 개발자/Linux] - Linux(ubuntu) to Windows , Windows to Linux 파일 전송 (SCP) Linux(ubuntu) to Windows , Windows to Linux 파일 전송 (SCP) 나의 상황은 사설 아이피의 Windows 개발 PC와 공인 아이피의 리눅스 Linux 서버 간의 파일 교환이 필요한 상황이었다. 당연히 리눅스로는 공인아이피이기에 다양한 방법으로 전송이 가능하겠지만 singo112ok.tistory.com 사용법도 똑같지만 제목 검색시 유리함을 위해서 새 글로 Linux To Linux 파일 전송을 작성한다 sc..
Beakjoon] 여행 가자(백준 1976코테) - 그래프 (C++) 🅰️문제주소 : https://www.acmicpc.net/problem/1976 🚩문제 🪡풀이 - 이동하기 원하는 길이 모두 이어져있는지 union find를 통해 간단하게 찾을 수 있다 - 각 노드(도시)가 이어진 루트 노드를 별도의 배열에 저장해 둔다. - 이어진 길은 union find로 재귀 탐색하며 루트노드의 값으로 업데이트시킨다 - 트리구조에서 스타구조 모형으로 점점 변해가며 시간복잡도가 줄어든다. ☕코드는 아래 숨김 더보기 #include #include std::vector ROAD; int find(int a) { if (a == ROAD[a]) return a; return ROAD[a] = find(ROAD[a]); } void UnionFunc(int a, int b) { a = ..
Beakjoon] 물통 (백준 2251코테) - 그래프 (C++) 🅰️문제주소 : https://www.acmicpc.net/problem/2251 🚩문제 🪡풀이 - 그래프로 map을 그려놓고 BFS, DFS 하는 것이 아닌 역으로 그래프를 그리는 문제 - 2차원 길찾기와 유사하게 물의 이동의 케이스를 배열로 구성한다. (0->1, 0->2, 1->0, 1->2, 2->0, 2->1) - 방문여부는 A와 B의 물통 양으로 이차원 배열을 만들어서 체크한다. - A, B, C의 물통의 양을 입력받은 뒤 BFS탐색을 시작하되 이동할 노드를 큐에 추가하고(예:0에서 1) 방문한 경우는 제외시킨다. - 받는물통한테 보내는 물통의 모든 용량을 추가한 뒤 기존 물통의 크기를 초과한 경우 초과한 만큼 다시 보내는 물통으로 보낸다. 초과하지 않았을 경우 보내는 물통은 0을 저장한다. ..
Beakjoon] Ax+By=C (백준 21568코테) - 정수론 (C++) 🅰️문제주소 : https://www.acmicpc.net/problem/21568 21568번: Ax+By=C A, B, C가 주어졌을 때, Ax+By=C를 만족하는 (x, y)중에서 다음을 만족하는 것을 아무거나 찾아보자. x, y는 정수 -1,000,000,000 ≤ x, y ≤ 1,000,000,000 www.acmicpc.net 🚩문제 🪡풀이 - ax+by = c 의 방정식의 해를 구하기 위해서는 확장 유클리드 호제법을 호제법을 사용해야 한다 - c % gcd(a,b) == 0 인 경우에만 정수해를 가지므로 먼저 체크 - 유클리드 호제법을 수행하되 x와 y의 이전값을 가지고 역순으로 계산하며 답을 찾아낼 수 있다 - x는 y', y는 x'-y'*q를 역순으로 계산한다. (이때 x' 는 x의 이전..
2023년 4분기 개발자 회고록 1. 회사🏢 새로운 업무를 시작한 지 벌써 한 분기라니.. 라고 하지만 기존 업무 유지보수를 병행하다 보니 크게 집중할 수 없었다. 게다가 새 업무는 프로젝트가 너무 많아서 기존 구조 파악만으로도 많은 시간이 걸렸다. 오래된 레거시 코드들 + 담당자들이 퇴사하며 인수인계만 겨우 되고 이후 플젝 수정이 없어서 히스토리나 내부 동작을 모르는 코드들 + 형상관리가 안돼서 코드 위치조차 찾기 힘든 코드들 + 정리된 문서는 거의 없고 얼마 안 되는 문서조차 최초 개발 시 작성된 코드만 조금 있어서 현재 구조와 다르며 신뢰성이 없는 문서들 + 게다 코드 내부는 시간에 쫓기였는지 나중은 전혀 고려하지 않고 다 때려 박은 나쁜 코드들.. + 다 비슷비슷한 프로젝트명들 과거 회사들도 이런 상황은 매우 흔했다. 개발자 실..
Beakjoon] 최소공배수 (백준 1934코테) - 정수론 (C++) 🅰️문제주소 : https://www.acmicpc.net/problem/1934 🚩문제 🪡풀이 - 우선 유클리드 호제법으로 최대공약수를 구해야한다 - 최소공배수 = 'A*B / 최대공약수' 공식에 대입한다 끝 ☕코드는 아래 숨김 더보기 #include int main() { std::ios::sync_with_stdio(false); std::cout.tie(0); std::cin.tie(0); int T, A, B; std::cin >> T; for (int i = 0; i > A >> B; int big, small; if (A