틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 17135 캐슬 디펜스 문제 캐슬 디펜스는 성을 향해 몰려오는 적을 잡는 턴 방식의 게임이다. 게임이 진행되는 곳은 크기가 N×M인 격자판으로 나타낼 수 있다. 격자판은 1×1 크기의 칸으로 나누어져 있고, 각 칸에 포함된 적의 수는 최대 하나이다. 격자판의 N번행의 바로 아래(N+1번 행)의 모든 칸에는 성이 있다. 성을 적에게서 지키기 위해 궁수 3명을 배치하려고 한다. 궁수는 성이 있는 칸에 배치할 수 있고, 하나의 칸에는 최대 1명의 궁수만 있을 수 있다. 각각의 턴마다 궁수는 적 하나를 공격할 수 있고, 모든 궁수는 동시에 공격한다. 궁수가 공격하는 적은 거리가 D이하인 적 중에서 가장 가까운 적이고, 그러한 적이 여럿일 ..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 18808 스티커 붙이기 문제 입력 첫째 줄에 노트북의 세로와 가로 길이를 나타내는 N(1 ≤ N ≤ 40)과 M(1 ≤ M ≤ 40), 그리고 스티커의 개수 K(1 ≤ K ≤ 100)이 한 칸의 빈칸을 사이에 두고 주어진다. 그 다음 줄부터는 K개의 스티커들에 대한 정보가 주어진다. 각 스티커는 아래와 같은 형식으로 주어진다. 먼저 i번째 스티커가 인쇄된 모눈종이의 행의 개수와 열의 개수를 나타내는 Ri(1 ≤ Ri ≤ 10)와 Ci(1 ≤ Ci ≤ 10)가 한 칸의 빈칸을 사이에 두고 주어진다. 다음 Ri개의 줄에는 각 줄마다 모눈종이의 각 행을 나타내는 Ci개의 정수가 한 개의 빈칸을 사이에 두고 주어진다. 각 칸에 들어가는 ..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 17070 파이프 옮기기 1 문제 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다. 파이프는 매우 무겁기 때문에, 유현이는 파이프를 밀어서 이동시키려고 한다. 벽에는 새로운 벽지를 발랐기 때문에, 파이프가..
알고리즘 문제를 풀기 시작하면서 단순히 풀고 끝내는 식으로 하니 배우는 느낌, 내 것으로 만드는 느낌이 들지 않았다. 그래서 이제 블로그 등을 통해 정리하면서 하나 하나 내 것으로 만들어 나가야겠다. 틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! 16637 괄호 추가하기 문제 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순서대로 계산해야 한다. 예를 들어, 3+8×7-9×2의 결과는 136이다. 수식에 괄호를 추가하면, 괄호 안에 들어있는 식은 먼저 계산해야 한다. 단, 괄호 안에는 연산자가 하나만 들어 있어야 한다. 예를 들어..
알고리즘 문제를 풀다보면 단순히 하나의 값만으로 정렬하는 경우가 아닌, 2개 이상의 값으로 정렬해야하는 경우가 생긴다. 하나의 값으로 정렬하는 경우, key(정렬 기준 값)을 명시 하지 않거나 또는 하나의 값만을 명시해줌으로써 가능했다. sorted(data) # OR data.sort() sorted(data, key=lambda x: x[0]) # OR data.sort(key=lambda x: x[0]) 두개 이상의 값으로 정렬하는 경우, key 값을 다음과 같이 튜플 형태로 엮어 넣어주면 된다. data = [[1, 2], [2, 3], [1, 4], [3, 0]] data = sorted(data, key = lambda x: (x[0], x[1])) # [[1, 2], [1, 4], [2, 3..
개발을 하다보면 버전관리, 협업, 포트폴리오 등의 이유로 Github을 사용하게 된다. 기본적으로 프로젝트마다 Repository를 만들고 운영을 하고, 개발 파일들을 올리면 다음 그림처럼 자동으로 파일들의 언어들을 분석해서 어떤 개발 언어 프로젝트인지 볼 수 있도록 제공하고 있다.. 하지만 웹 서버라던지 모바일 어플리케이션 등 주 개발언어가 아닌 파일들도 올려야하는 경우들이 존재하고 그러한 파일들의 코드가 대부분의 코드를 차지하게 됨으로써 다른 개발언어 프로젝트로 표시되는 경우가 있다. 예를 들어 웹 서버를 개발하는 프로젝트인데, 클라이언트 html 코드가 너무 많아 html 프로젝트로 표시되는 경우도 있다. 이처럼 원하지 않는 언어로 표시되는 문제를 해결하기 위해 github에서는 `.gitattri..
그냥 내가 잊지 않기위해 작성하는 포스트. 2년만에 다시 공부하는 Java. Type casting부터 애를 먹기 시작했다. 생각해보면 언어별 Type casting을 하는 방식이 다 다르다는 것을 인식해서, 그걸 좀 정리해보고자 한다. Type casting에 대해 깊게 파고들면 명시적, 암묵적 형변환으로 나뉘며 많은 이야기들이 나오는데 그런 깊은 내용들은 나중에 다뤄보기로 하고 여기서는 단순히 명시적 형변환을 하는 법에 대해 다뤄보고자 한다. 또한, 여기서는 단순히 숫자 문자 데이터를 숫자로 바꾸는 것이 아닌 말 그대로 문자를 아스키코드 형 숫자로 바꾸는 것을 이야기한다. 일단, 나는 Python, Javascript(Node.js), C++를 최근 다뤄오고 있다. 그래서 인지 몰라도, 아무튼 다음과..
왜 Slack bot ? 회사, 개발 프로젝트를 진행하다보면 협업 툴로서 Slack을 많이 사용한다. Slack을 사용하다보니 여러 회사의 slack 활용법을 볼 수 있었는데, 그 중 스포카 기술 블로그에서 언급한 사례들이 정말 흥미로웠고 만들어보고 싶다는 마음이 생겼다. 슬랙봇, 어디까지 만들어봤니? 스포카의 슬랙봇 활용법 엿보기 spoqa.github.io 그래서 알아보니, Slack 자체에서도 많은 슬랙봇을 지원하기도 하고, 스포카 블로그에서 말하듯 지원하는 외부 어플리케이션들도 많았다. 하지만 단순히 이런 것들을 활용하기보다, 직접 코드로 만들 수 있는 방법은 없을까 하던 중 python으로 slack bot을 만들 수 있는 slacker 라이브러리를 찾았다. os/slacker Full-feat..
- Total
- Today
- Yesterday
- docker
- HTTP
- Kubernetes
- 로그
- container
- Spring boot
- 일상
- Intellij
- 클린 아키텍처
- WebFlux
- Istio
- MySQL
- Spring
- c++
- k8s
- python
- 알고리즘
- boj
- java
- tag
- OpenTelemetry
- gradle
- Log
- Algorithm
- 쿠버네티스
- Clean Architecture
- jasync
- 백준
- 비동기
- 하루
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |