본문 바로가기

분류 전체보기

(106)
프로그래머스 - 카카오 2020 공채 - 문자열 압축 c++ https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 | 프로그래머스 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 aabbaccc의 경우 2a2ba3c(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 programmers.co.kr 프로그래머스 2단계를 풀다가 틀려서 배지를 획득을 못했는데, 이 문제가 ..
백준 17779 - 게리맨더링2 - 시뮬레이션 (c++) 문제 링크 : https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름도 재현시로 변경했다. 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다. 재현시는 크기가 N×N인 격자로 나타낼 수 있다. 격자의 각 칸은 구역을 의미하고, r행 c열에 있는 구역은 (r, c)로 나타낼 수 있다. 구역을 다섯 개의 선거구로 나눠야 하고, 각 구역은 다 www.acmicpc.net 2019 하반기 삼성 sw 역량테스트 기출문제였던 문제를 풀어보았다. 결국 문제는 중심이 되는 x,y좌표와 d1,..
백준 13335 트럭 - 큐 2개를 활용하자 c++ 문제 링크: https://www.acmicpc.net/problem/13335 13335번: 트럭 문제 강을 가로지르는 하나의 차선으로 된 다리가 하나 있다. 이 다리를 n 개의 트럭이 건너가려고 한다. 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있다. 다리 위에는 단지 w 대의 트럭만 동시에 올라갈 수 있다. 다리의 길이는 w 단위길이(unit distance)이며, 각 트럭들은 하나의 단위시간(unit time)에 하나의 단위길이만큼만 이동할 수 있다고 가정한다. 동시에 다리 위에 올라가 있는 트럭들의 무게의 합은 다리의 최 www.acmicpc.net 큐를 이용해서 시뮬레이션을 구현하는 문제로 특별한 알고리즘은 없는 문제다. 다만 이런 시뮬레이션 문제를 처음 풀어보았기 때문..
백준 1261 알고스팟: bfs와 caching 쓰는 문제 c++ https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미한다. (1, 1)과 (N, M)은 항상 뚫려있다. www.acmicpc.net 사실 이 문제는 분류가 다익스트라 알고리즘으로 분류되어있었는데, 그 알고리즘에 대해서 몰라도 풀수 있다. 전형적인 bfs문제는 아니고 다이나믹 프로그래밍의 캐시 개념만 조금 쓰면 풀 수 있다. 어떻게 보면 최단 경로 문제이기 때문에 (빙빙 돌아가면서 벽을 부숴가면서 미로를 탐색하진 않을것 아닌가?) bfs를 쓰는 것은 당연한 ..
백준 2143 두 배열의 합 - 단순 브루트포스 c++ https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1≤m≤1,000)이 주어지고, 그 다음 줄에 m개의 정수로 B[1], …, B[m]이 주어진다. 각각의 배열 원소는 절댓값이 1,000,000을 넘지 않는 정수이다. www.acmicpc.net 배열별로 가질 수 있는 모든 부분합의 경우와 경우의 수를 우선 전부 구해 T가 되는 가지수를 구하면 되는 문제였다. set를 활용해 key value 값으로 저장해 구현할수도 있지만 벡터를 활용..
python 오늘부터 특정 일 이후까지의 날짜 출력 일하다가 필요한 부분이라서 찾아보았다. 파이썬에 내장된 함수가 있을것 같아서 찾아봤더니 역시 있었다. datetime 라이브러리의 오늘날짜를 구하고 그 후에는 timedelta 메소드를 이용해서 날짜를 1씩 더해주면 파이썬이 알아서 날짜를 1증가시킨 형태로 계산해준다. 오늘부터 10일 뒤까지의 날짜를 계산하고 싶다고 한다면 예를들어 다음과 같이 for문을 이용하면 간단하게 구할 수 있다. import datetime today = datetime.date.today() for i in range(10): print(today) today += datetime.timedelta(+1) 출력값 2020-02-16 2020-02-17 2020-02-18 2020-02-19 2020-02-20 2020-02-2..
투 포인터 알고리즘, 슬라이딩 알고리즘 https://m.blog.naver.com/kks227/220795165570 투 포인터(Two Pointers Algorithm), 슬라이딩 윈도우(Sliding Window) (수정: 2019-09-09) 조금 성향이 비슷하다고 생각하는 기법 2개를 함께 쓰려 합니다.첫 번째로 소개해드릴 기법은 투 포인터(tw... blog.naver.com 몇분 동안 여러 블로그들을 봤는데 위에 있는 글이 제일 깔끔하게 두 알고리즘에 대해 정리해 놓은 것 같다.
200213 백준 150문제 달성! 46일동안 150문제 풀었다. 조만간 프로그래머스 2단계에 한번 도전해볼 예정.