728x90

전체 글 39

[백준 / BOJ] 1039 교환

알고리즘 분류: bfs, dfs 문제 링크: https://www.acmicpc.net/problem/1039 1039번: 교환 첫째 줄에 정수 N과 K가 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, K는 10보다 작거나 같은 자연수이다. www.acmicpc.net dfs, bfs 모두 해결 가능하지만 이 문제에선 bfs가 메모리와 시간복잡도가 효율적이다. dfs는 방문처리 배열을 선언해야하므로 메모리가 많이 소요된다. #include #define ll long long using namespace std; // https://www.acmicpc.net/problem/1039 교환 int n, k; int conv(int n, int l, int r) { string s = to_..

[백준 / BOJ] 1103 게임

알고리즘 분류: dp, dfs, bfs 문제 링크: https://www.acmicpc.net/problem/1103 1103번: 게임 줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. 이 값은 모두 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 보드의 상태가 주어진다. 쓰여 있는 숫자는 1부터 9까지의 자연수 또는 www.acmicpc.net #include #define ll long long using namespace std; typedef pair pii; // https://www.acmicpc.net/problem/1103 게임 int r, c; char board[51][51]; int max_dist[51][51]; int visited[51][51]; const int..

[백준 / BOJ] 1713 후보 추천하기

알고리즘 분류: 구현, 시뮬레이션 문제 링크: https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net #include #define ll long long using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); vector photo; int visit[101] = {}; int n, num_cc; cin >> n >> num_cc; for(int ..

[백준 / BOJ] 1062 가르침

알고리즘 분류: 비트마스킹, 백트래킹 문제 링크: https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net #include #define ll long long using namespace std; // https://www.acmicpc.net/problem/1062 가르침 int word[50]; int alpa; int n, k, ans; void go(int start, int depth) { if(depth == k) { int cnt ..

[백준 / BOJ] 3055 탈출

알고리즘 분류: BFS 문제 링크: https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net #include #define ll long long using namespace std; typedef pair pii; int r, c; char forest[51][51]; int ddg_dist[51][51]; int water_dist[51][51]; int dx[4] = {-1, 1, 0, 0}; int dy[4] = {0, 0, -1, 1}; pii ddg; v..

[백준 / BOJ] 3425 고스택

알고리즘 분류: 구현, 자료구조, 스택 문제 링크: https://www.acmicpc.net/problem/3425 3425번: 고스택 각각의 입력값에 대해서, 해당하는 프로그램을 수행한 뒤, 출력값을 출력하면 된다. 출력값이란 스택에 저장되어 있는 숫자이다. 만약, 프로그램 에러가 발생하거나, 모든 수행이 종료됐을 때 www.acmicpc.net #include #define ll long long using namespace std; stack stk; vector commands; vector num_x; int numx(ll x) { stk.push(x); return 0; } int pop() { if(stk.empty()) return -1; stk.pop(); return 0; } int ..

[WIL] 7주 차 회고

배운 점 팀 프로젝트를 진행하며 API와 DB 테이블 설계에 대한 경험을 쌓았다. 첫 화면에 들어갔을 때 어떤 데이터들을 화면에 필요한지를 생각해서 보내줄 수 있도록 구현했다. CRUD 기능을 다시 한번 구현해보며 REST API에 대한 익숙함이 생겼다. 별생각 없이 어노테이션을 가져다 사용했었는데, 자세히 알고 사용하는 게 아니라면 문제가 발생할 수도 있다는 것을 깨달았다. Spring version 4부터 등장한 @RestController는 @Controller + @ResponseBody의 조합인 것을 알게 되었다. 컨트롤러 클래스에서 반환 값을 문자열로(ex. return "index.html")해서 그 html로 넘어가기 위해서는 @RestController가 아닌 @Controller만 작성..

Retrospective 2021.04.18

[WIL] 6주 차 회고

프로그래머스: programmers.co.kr/learn/challenges 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 클론 코딩한 사이트(AWS 비용 문제로 서버가 닫힐 수 있습니다): http://programmers99.shop/ 클론코딩 | 프로그래머스 programmers99.shop 시연 동영상: https://youtu.be/Ejoa31jhNrc 배운 점 프로그래머스 사이트 클론 코딩을 하며 front-end와 back-end의 협업 경험을 쌓았다. DB에 저장하기 위해 스크래핑을 할 때, 자바의 JSOUP 라이브러리로 진행하다 상세 문제 api접근이 막혀있어서 selenium을 활용했다. 스크래핑을 하면서 html을 보기 위해 개발자 도..

Retrospective 2021.04.11

[WIL] 5주 차 회고

배운 점 스프링 부트를 활용해서 CRUD, 로그인, 댓글 기능이 있는 블로그를 만들었다. 패키지를 나누어 계층적으로 개발하는 것에 대한 갈피를 잡게 되었다. 스프링 시큐리티로 로그인 기능을 구현하는 실습과 카카오 소셜 로그인이 가능하도록 했다. RDBMS인 MySQL에 데이터들이 저장되도록 구현했다. 느낀 점 2주간 스프링부트를 사용하며 어느 정도 익숙함이 생겼지만 아직 학습해야 할 부분이 많다고 느껴졌다. 백엔드 공부를 하는 중임에도 웹사이트개발할 때 자바스크립트 파일을 자주 수정할 일이 있어서 이 쪽도 중요하다는 것을 느꼈다. 댓글 기능을 구현하며 DB에 대한 지식의 필요성을 많이 느끼게 되었다. 앞으로 DB와 SQL에 대한 학습도 꾸준히 해야겠다.

Retrospective 2021.04.04

[백준 / BOJ] 2352 반도체 설계

알고리즘 분류: DP 문제 링크: www.acmicpc.net/problem/2352 2352번: 반도체 설계 첫째 줄에 정수 n(1 ≤ n ≤ 40,000)이 주어진다. 다음 줄에는 차례로 1번 포트와 연결되어야 하는 포트 번호, 2번 포트와 연결되어야 하는 포트 번호, …, n번 포트와 연결되어야 하는 포트 번호가 주 www.acmicpc.net LIS를 활용한 DP로 해결했다. n이 4만이므로 n^2가 8억이므로 시간초과가 발생한다. 이분탐색을 활용하여 O(nlogn)으로 해결했다. #include #include #include #include #include #include #include #include #include #include #include #include #include #incl..

728x90