일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 트리 순회
- 도메인 주도 개발
- ddd
- 몽고디비 렘
- flask
- 백준
- 고 배열
- 백준 파이썬
- 자바 디자인 패턴
- 자바 디자인패턴
- 파이썬
- 우분투
- 12761번 돌다리
- 백준 사이트
- MongoDB Realm
- http 개념
- 도메인 주도 개발 시작하기
- http 완벽가이드
- 백준 12761
- hadoop
- 하둡
- 12761 돌다리
- go
- 자바
- 정렬
- String 함수
- golang struct
- 백준 12761번
- domain driven develop
- golang
- Today
- Total
목록[ Algorithm ]/ [ BOJ ] (54)
개발바닥
https://www.acmicpc.net/problem/9081 9081번: 단어 맞추기 입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 하나의 단어가 한 줄로 주어진다. 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이 없는 연속된 알 www.acmicpc.net 문제 풀이 주어진 문자에 다음 문자를 찾는 문제이다. 다음 문자를 찾기 위해서 알파벳 간에 비교를 통해 변경할 위치를 찾는다. 변경할 위치가 i,j 라면 i는 arr[i-1] inputString[i - 1]: if j < idx: j = idx if i != 0 and j != 0: inputString[i-1], inputString[j] = inputString[j], inputS..
https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 문제 요구 사항 주어진 문자에서 요구 사항에 따라 동작 후 비밀번호를 출력하면 되는 문제이다. 요구 사항은 총 3가지가 있다. 1. "" : 커서가 오른쪽으로 이동한다. 3. "-" : 커서 앞에 글자를 지운다. 스택을 활용하여 문제를 해결할 수 있다. 스택을 사용하는 이유는 커서 이동 후 문자를 중간에 삽입하거나 삭제시 뒤에 문자들을 그대로 복원하기 위해서 LIFO 특성인 스택을 사용한다..
문제 https://www.acmicpc.net/problem/15653 15653번: 구슬 탈출 4 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 문제 해결 방법 완탐을 하면 문제를 해결할 수 있다. 시키는데로 구현만 하면 되는 문제이지만 조건이 까다로워서 한부분이라도 놓치면 시간을 많이 소비하게 되므로 이런 문제는 코드를 구현하기 전에 설계를 꼼꼼하게 해야된다. 중복 탐색을 방지하기 위해서 4차원 체크 변수를 선언하였습니다. check[빨간공 Y좌표][빨간공 X좌표][파란공 Y좌표][..
문제 https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 문제 해결 방법 효율적으로 풀기 위해서는 DP 알고리즘 사용해야 된다. 2차원 배열 변수 DP를 선언 후 Bottom - up 방식으로 문제를 해결하면 된다. 시작과 끝에 해당되는 인덱스에 값이 같으면 안에가 팰린드롬인지 아닌지만 알고 있으면 된다. if( arr[시작] 과 arr[끝]이 같고 dp[시작+1][끝-1]이 팰린드롬이라면) DP[시작][끝] = 팰린드롬이다. 소스 코드 보기 https://github.com/joker..
문제 https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net 문제 해결 방법 이동하면서 벽을 얼만큼 부수고 이동했는지 방문 변수를 통해서 확인을 한다. 방문 변수를 3차원으로 선언 후 visited[벽 부순 횟수][y좌표][x좌표] 를 이용해서 접근하고 bfs로 문제를 풀면 쉽게 해결할 수 있다. 소스 코드 보기 https://github.com/jokerKwu/BOJ_Algorithm/blob/master/BFS/..
문제 https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → 7 4 6 2 3 1 7 4 6 2 3 1 → 1 8 3 4 2 9 9 2 3 6 1 5 → 7 2 6 9 8 2 4 2 9 3 1 8 → 1 6 2 9 8 4 2번 연 www.acmicpc.net 문제 해결 방법 주어진 조건대로 구현하면 된다. 오른쪽 90도 회전 tmp[i][j] = board[h-1-j][i] 왼쪽 90도 회전 tmp[i]..
문제 https://www.acmicpc.net/problem/17069 17069번: 파이프 옮기기 2 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 문제 해결 방법 단순히 bfs 로 문제를 해결하면 메모리초과가 발생한다. 이 문제를 해결하기 위해서는 다이나믹 프로그래밍으로 접근해야 된다. 2중 포문을 돌면서 이동 가능한 방향을 dp [방향][y좌표][x좌표] 에 값을 계속 더해주면 된다. dp 값이 0이라면 해당 좌표로는 이동된 경우가 없으므로 0이 아닌 경우에만 더해주면 쉽게 문제를 해결할 수 있다. 소스코드 ..
문제 https://www.acmicpc.net/problem/17828 17828번: 문자열 화폐 첫 번째 줄에 문자열의 길이 N(1 ≤ N ≤ 5,000,000)과, 문자열의 가치를 나타내는 정수 X(1 ≤ X ≤ 500,000,000)가 공백으로 구분되어 주어진다. www.acmicpc.net 문제 해결 방법 문제에서 문자열의 길이 N과 조건을 만족하면서 사전 순으로 가장 앞서는 문자열을 출력해야되므로, 문자열 길이 N만큼 'A'를 만들고 문자열 길이마다 1씩 사용했으므로 M에서 N을 빼준다. 그리고 'Z' 가 몇개 필요한지 알아야 되므로 M에서 25를 나눈다. 뒤에서부터 Z를 만들고 나머지 값을 이용해서 Z앞에 글자에 더해주면 문제를 해결할 수 있다. 소스 코드 https://github.com/..