일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- taint
- VARCHAR (1)
- Value too long for column
- python
- 티스토리챌린지
- 코루틴 빌더
- 개성국밥
- terminal
- k8s #kubernetes #쿠버네티스
- 겨울 부산
- 오블완
- mp4fpsmod
- vfr video
- 코루틴 컨텍스트
- JanusWebRTCGateway
- preemption #
- JanusWebRTCServer
- 깡돼후
- JanusGateway
- Spring Batch
- table not found
- pytest
- tolerated
- kotlin
- 달인막창
- PytestPluginManager
- PersistenceContext
- JanusWebRTC
- 자원부족
목록Algorithm/구현 (12)
너와 나의 스토리
문제: programmers.co.kr/learn/courses/30/lessons/17681 입력으로 지도의 한 변 크기 n과 2개의 정수 배열 arr1, arr2가 들어온다. 1 ≦ n ≦ 16 arr1, arr2는 길이 n인 정수 배열로 주어진다. 정수 배열의 각 원소 x를 이진수로 변환했을 때의 길이는 n 이하이다. 즉, 0 ≦ x ≦ 2n - 1을 만족한다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ") 또는 벽("#") 두 종류로 이루어져 있다. 공백을 그냥 '\0'으로 두면, 틀리므로 주의하자 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도 1과 지도 2라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 ..
문제: programmers.co.kr/learn/courses/30/lessons/17680 캐시 크기(cacheSize)와 도시 이름 배열(cities)을 입력받는다. cacheSize는 정수이며, 범위는 0 ≦ cacheSize ≦ 30 이다. cities는 도시 이름으로 이뤄진 문자열 배열로, 최대 도시 수는 100,000개이다. 각 도시 이름은 공백, 숫자, 특수문자 등이 없는 영문자로 구성되며, 대소문자 구분을 하지 않는다. 도시 이름은 최대 20자로 이루어져 있다. 캐시 교체 알고리즘은 LRU(Least Recently Used)를 사용한다. cache hit일 경우 실행시간은 1이다. cache miss일 경우 실행시간은 5이다. 결국 LRU 알고리즘을 구현하는 문제이다. 문제 풀이: do..
문제: programmers.co.kr/learn/courses/30/lessons/17679 입력으로 판의 높이 m, 폭 n과 판의 배치 정보 board가 들어온다. 2 ≦ n, m ≦ 30 board는 길이 n인 문자열 m개의 배열로 주어진다. 블록을 나타내는 문자는 대문자 A에서 Z가 사용된다. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는다. 블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다. 만약 빈 공간을 채운 후에 다시 2×2 형태로 같은 모양의 블록이 모이면 다시 지워지고 떨어지고를 반복하게 된다. 문제 풀이: 먼저 전체 판을 스캔하면서, 2x2가 같은 모양은 블록을 찾고, 이를 blocks 변수에 넣는다. set bl..
문제: https://swexpertacademy.com/main/solvingProblem/solvingProblem.do 소스 코드: #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include using namespace std; int tc, n, m; int dx[4] = { -1,0,1,0 }; int dy[4] = { 0,1,0,-1 }; char arr[22][22]; bool visit[22][22][4][17]; struct state { int curx; int cury; int dir; int memory; };..
문제: https://www.acmicpc.net/problem/18809 문제 풀이: 배양액을 뿌릴 수 있는 땅의 수는 10개 이하이다. 뿌릴 수 있는 곳을 벡터에 따로 저장한다. 두 종류의 배양액을 백트래킹을 이용해서 뿌려준다. 해당 위치에서 가능한 경우의 수는 { (빨간색 배양액 뿌리기), (초록색 배양액 뿌리기), (아무것도 안 뿌리기) } 다음과 같이 3가지 경우가 있다. 빨간색 배양액을 뿌렸다면 rbit에 해당 idx를 사용했다고 체크해준다 (비트마스크) 초록색을 뿌렸다면 gbit에 두 종류의 배양액을 모두 뿌렸다면, bfs를 통해 꽃이 피는 곳을 체크하자. rbit, gbit를 이용해서 초기화를 해준다. 빨강 배양액을 뿌린다면 visit배열에 1로 표시 (+1,+2,+3,... 순으로 퍼져나..
문제: https://www.acmicpc.net/problem/18808 함수 설명: - bool check(int x, int y): 현재 위치에 스티커를 붙일 수 있는지 판단 - void plusmap(int x, int y): 현재 위치에 스티커 붙임 - bool paste(): 붙일 수 있는 곳 찾아서 붙이기, 붙였는지 결과 리턴 -> check, plusmap 함수 사용 - void rotation(): 스티커 90도 회전시키기 소스코드: #include #include #include #include using namespace std; int preshape[11][11],curshape[11][11],n,m,k,realmap[41][41],res; int xlen, ylen; //현재 위..
문제: https://programmers.co.kr/learn/courses/30/lessons/64061 문제 풀이: stack을 이용하여 쌓아 올리면 됨. 소스 코드: #include #include #include using namespace std; int cur[32]; stack st; int solution(vector board, vector moves) { int answer = 0; int row = board.size(); int col = board[0].size(); //init for (int i = 0; i < col; i++) { for (int j = 0; j =row) continue; if (st.empty()) { st.push(board[cur[curP]][curP..
문제: https://swexpertacademy.com/main/solvingProblem/solvingProblem.do 문제 풀이: 우리는 header와 main 함수 부분을 제외한 부분을 라이브러리를 사용하지 않고 채우면 된다. main 코드를 보면 한 블록에서 높이는 다음과 같이 나올 수 있다. base는 1~6까지가 나올 수 있고, 거기에 플러스로 0~2가 더해진 수가 나올 수 있으므로 높이는 1~8가 나올 수 있다. 높이가 최대 8밖에 안되므로 long long형 16자리로 표현할 수 있다. 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 => 1111222233334444 이런식으로 블록의 모양을 state라고 하자. hash_table을 만들어 각 블록의 state를 저장하였다...