분류 전체보기

    [Programmers] 2021 KAKAO BLIND RECRUITMENT : 메뉴 리뉴얼 (C++) with 조합!

    https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 걸린 시간 : 31분 37초 여기저기서 끝도 없이 나오는 조합 문제이다. 조합을 정석적으로 알고 있기만 하면 어려울 게 없다. 조합 아래 코드가 내가 사용하는 조합이다. 코딩테스트 단골 주제니까 암기해두자. 또한, 여기서는 조합의 결과를 전역으로 선언한 것이지만 직접 조합의 결과를 파라미터로 넘겨주는 경우도 있다. 이러면 너무 컨테이너 자체를 들고다니는 것 같아서 난 위 코드처럼 짠다... 취향껏..

    [BOJ] 20058 : 마법사 상어와 파이어스톰 (C++)

    https://www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net 걸린 시간 : 59분 47초 소문제 3개 정도로 쪼갤 수 있는 구현 문제이다. 항상 구현에서 힘들었는데 이 문제를 비교적 쉽게 해결한 것 같아 마음이 놓인다... 알고리즘 소문제는 다음과 같이 나눌 수 있을 것이다. L 값에 따라 배열을 회전 회전한 후 3칸 이상의 얼음과 인접하지 않은 칸은 얼음의 양 감소 모든 마법이 끝나고 얼음의 총량과 연결 요소의 최대 크기 파악 하나하나..

    [BOJ] 2636 : 치즈 (C++)

    https://www.acmicpc.net/problem/2636 2636번: 치즈 첫째 줄에는 사각형 모양 판의 세로와 가로의 길이가 양의 정수로 주어진다. 세로와 가로의 길이는 최대 100이다. 판의 각 가로줄의 모양이 윗 줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진 www.acmicpc.net 걸린 시간 : 47분 43초 생각이 너무 안 나서 답답했던 문제였다. 공기와 닿은 부분을 어떻게 찾을까 고민을 많이 했지만, 결국 실행마다 공기를 모두 찾아주고, 치즈를 모두 탐색해서 구현하는 것이었다. 이렇게 매 실행마다 해도, 실행은 최대 50번이고, 배열의 크기가 최대 100이라서 가능하다는 것을 알아차려야 했다. 알고리즘 배열은 0 ~ N+1 까지 있고 0과 N+1 부분은 가장자리이다. 사진에서 X..

    [BOJ] 2110 : 공유기 설치 (C++)

    https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 걸린 시간 : 45분 44초 문제와 조건을 보고 한참을 생각하다,,,,, 결국 알고리즘 분류를 보았다. 매개 변수 탐색 문제이다. 실제 코딩테스트 등에서 많이 나올지는 모르는 문제이다. 너무 특수한 경우에만 적용 가능하고 기발한 생각으로 풀어야 하기 때문에 열심히 할 유형은 아니라고 생각된다. 매개 변수 탐색 (Parametric Search) ..

    섹션 13 : Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

    이 글은 인프런 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의를 듣고 쓴 글입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 ..

    [BOJ] 1339 : 단어 수학 (C++)

    https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 걸린 시간 : 17분 46초 아이디어 입력을 받으면서 알파벳들의 가중치를 설정해준다. ABC 가 들어오면 A의 가중치에 100, B의 가중치에 10, C의 가중치에 1을 추가해주는 식이다. 입력이 끝나면 가중치가 큰 알파벳 순으로 9부터 내려가면서 할당한다. 끝이다.... 어렵지는 않은 문제 Map을 Value 기준으로 정렬 여기서 가중치를 map으로 구현하는데, map은 key를 기준으로 ..

    섹션 12 : Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

    이 글은 인프런 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의를 듣고 쓴 글입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 ..

    [BOJ] 3055 : 탈출 (C++)

    https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 걸린 시간 : 36분 36초 BFS를 투트랙으로 하는 문제이다. 비슷한 문제를 풀어본 적이 있는 것 같다.. 우선, 내 목적은 비버를 D의 위치로 가게 하는 것이다. 여기서 가는 길이 물에 잠겨있다면 이동이 불가능하다는 조건이 붙는다. 이 조건을 위해 물의 흐름의 위치를 (wdist배열) 미리 완성해놓고, 즉 어떤 지점에 물이 몇 초만에 오는지 미리 모두 계산해놓고 비버를 움직인다. 예를 들어, 어떤 지점에 ..

    [BOJ] 1600 : 말이 되고픈 원숭이 (C++) with BFS

    https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 걸린 시간 : 47분 25초 알고리즘 아이디어 BFS의 응용판, 3차원으로 푸는 문제이다. 이와 유사한 문제가 꽤 있다. 대표적으로 벽 부수고 이동하기 문제이다. (검색 ㄱㄱ!) 벽 부수고 이동하기와 문제 조건이 거의 유사하다. 벽 부수고 이동하기 문제의 경우 벽을 부수는 행위를 할 수 있고, 말이 되고픈 원숭이 문제의 경우 말처럼 이동할 수 있는 것이다. 단순 BFS의 핵심은 어..

    [BOJ] 2140: 지뢰찾기 (C++)

    https://www.acmicpc.net/problem/2140 2140번: 지뢰찾기 지뢰찾기는 N×N에서 이뤄지는 게임이다. 보드의 곳곳에는 몇 개의 지뢰가 숨겨져 있고, 지뢰가 없는 칸에는 그 칸과 인접(상하좌우 및 대각선)해 있는 8개의 칸들에 몇 개의 지뢰가 숨겨져 있는 www.acmicpc.net 걸린 시간 : 40분 12초 간단한 그리디와 구현 문제이다. 코드는 좀 복잡해 보일 수 있지만 어렵지 않다. 파란색 부분을 처리한다. 꼭짓점 부분이 1이라면 지뢰가 있는 것이고, 0이라면 없는 것이다. 따라서 파란색 부분은 간단하게 처리할 수 있다. 빨간색 부분을 처리한다. 꼭짓점 부분을 제외한 가장자리 모서리 부분이다. 인덱스가 낮은 곳부터 처리하다 보면 각 지점이 결정된다. 위쪽 모서리를 보자. ..