반응형

분류 전체보기 627

[G5] 백준 20437번 문자열 게임 2 C++ 해시맵, 문자열

리뷰 https://www.acmicpc.net/problem/20437이분탐색 + 슬라이딩 윈도우로 3번은 구현 했으나, 4번에 대한 아이디어가 떠오르지 않았다.결국 질문게시판을 보고 해시맵으로 구현하여 AC를 맞았다 ㅠㅠ 전역 변수t : 주어지는 테스트 케이스의 개수n, k : 입력 받은 문자열의 길이를 저장할 변수 n, 부분 문자열에서 정확히 문자를 포함해야 하는 개수 kw : 입력 받은 문자열을 저장할 문자열 변수dic : 문자열에서의 단어 정보를 저장할 맵, key는 char, value는 vector 타입이다. 함수없음  문제풀이t를 입력 받고, 테스트 케이스의 개수만큼 반복문을 수행해 준다.이전 테케에서 사용한 dic정보를 초기화 해주고 w, k를 입력받아 준다.n을 w의 size로 초기화 ..

[S1] 백준 1283번 단축키 지정 C++ 구현, 문자열

리뷰 https://www.acmicpc.net/problem/1283생각보다 생각할게 많은 문자열 구현 문제, 파이썬이면 쉬웠겠지만 C++이라 애좀 먹었다. 그래도 재밌는 문제 전역 변수n : 입력되는 문자열의 개수v : 알파벳 방문처리를 하기 위한 정수형 배열, 아스키코드 변환이 쉽도록 125크기로 세팅하였다. 함수1. preprocessstring preprocess(string& str, int index) 단축키 지정이 가능할 경우 단축키에 대괄호를 붙히기 위한 함수대괄호를 붙여야 하는 문자열 str와 대괄호를 붙힐 구간의 index를 매개변수로 입력받아준다.front는 str의 begin부터 begin + index까지로 초기화 한다.mid는 [ + str의 begin + index부터 beg..

[S1] 백준 1522번 문자열 교환 C++ 브루트포스 알고리즘, 슬라이딩 윈도우

리뷰 https://www.acmicpc.net/problem/1522생각의 전환이 필요한 문제.. 그리디하게 접근하면 생각할게 너무 많다, 문자열의 길이가 최대 1000이니 그냥 완탐 돌리면 된다. 전역 변수없음  함수없음  문제풀이문자열 s를 입력 받고, 정수 n에 s의 길이를 저장한다.a의 개수를 저장할 변수 a를 0으로 초기화 한다.정답을 저장할 변수 ans를 적당히 큰값으로 초기화 한다, 나는 10억으로 했다.문자열 s의 각 문자를 순회하며 a의 개수만큼 a를 증가시켜준다.다시 n번의 for문을 개행하고, b의 개수를 세어줄 정수형 변수 cnt를 0으로 초기화 한다.i부터 i + a까지 탐색할 for문을 추가로 개행해 주고, s의 j % n번째 인덱스가 b라면 cnt를 증가시켜 준다.탐색을 마칠..

[S1] 백준 2531번 회전 초밥 C++ 슬라이딩 윈도우, 덱

리뷰 https://www.acmicpc.net/problem/2531회전 초밥의 라인을 돌려가며 먹을 수 있는 초밥의 가짓수의 최대를 구하는 문제N * k 는 9천만이라 쉽게 AC가 날 줄 알앗는데 덱 + set만으로 구현을 하니 시간초과가 났다  전역 변수n : 주어지는 초밥의 개수d : 주어지는 초밥의 최대 가짓수k : 먹을 수 있는 초밥의 개수c : 추가로 얻을 수 있는 초밥의 정보ans : 먹을 수 있는 초밥의 최대 가짓수를 저장할 변수v : 먹은 각 초밥의 개수를 저장하기 위한 배열 함수없음  문제풀이n, d, k, c를 입력 받아주고 정수형 덱 deq를 초기화 해준다.n개의 초밥 정보를 deq에 추가해 준다.cnt를 0으로 초기화 하고, 처음 0 ~ k - 1개의 초밥을 먹은 상태로 만들어준..

[S1] 백준 17615번 볼 모으기 C++ 그리디 알고리즘

리뷰 https://www.acmicpc.net/problem/17615일직선상에 놓여 있는 볼에 관한 정보가 주어질 때, 규칙에 따라 볼을 이동하여 같은 색끼리 모으되 최소 이동횟수를 찾는문제... 근데... 문제가... 좀 이상하다.. 이게 맞는가 싶은데 맞네  전역 변수n : 공의 개수를 입력 받을 정수형 변수cnt : 각 케이스 마다 공을 이동할 횟수를 저장할 변수s : 공의 정보를 입력 받을 문자열 변수 함수없음  문제풀이n, s값을 입력 받고, 각 케이스마다 cnt 개수를 저장할 정수형 벡터 ans를 초기화 해준다.매 케이스마다 cnt를 0으로 초기화 해주고, B기준 양쪽, R기준 양쪽 총 4번의 케이스를 탐색해 준다.R이 기준이라면 for문을 통해 최초로 B가 나올때를 찾고, 해당 인덱스부터..

[S1] 백준 1446번 지름길 C++ 다익스트라, 최단 경로

리뷰 https://www.acmicpc.net/problem/14461D 최단 경로 문제, 알고리즘 분류에 DP가 있긴 한데, 다익스트라를 통해 문제를 풀이하였다. 전역 변수n, d : 주어지는 지름길의 개수 n, 목적지 까지의 거리 dPos : 다익스트라를 진행할 때 직선 상에서의 현재 위치를 나타낼 구조체, 시간을 기준으로 오름차순 정렬한다.lst : 지름길 정보를 저장하기 위한 pair 타입의 벡터, 최대 10001크기로 설정한ㄷ. 함수1. dijkstraint dijkstra() 다익스트라를 통해 목표 지점까지의 최단 경로를 구하는 함수정수형 벡터 dist를 d + 1 크기, 적당히 큰 값으로 초기화 한다, 나는 20억으로 세팅했다.시작 지점인 0을 dist[0] = 0을 통해 거리를 0으로 만..

[G5] 백준 2170번 선 긋기 C++ 우선순위 큐, 스위핑

리뷰 https://www.acmicpc.net/problem/2170일 직선상으로 선을 긋고, 그려진 선(들)의 총 길이를 구하는 문제우선순위 큐 혹은 정렬을 통해 구현할 수 있는 아주 간단한 문제이다. 전역 변수n : 선을 그은 횟수를 입력 받을 정수형 변수x, y : 그은 선의 시작점 x와 도착점 y를 표시하기 위한 정수형 변수Line : 각 선의 정보를 저장하기 위한 구조체, 우선 순위 큐 활용을 위해 내부에 cmp함수를 작성한다. 함수없음  문제풀이구조체 Line타입의 우선순위 큐 pq를 초기화 해준다.n값을 입력 받고, n개의 선의 정보를 입력 받아 pq에 push해준다.끝 선의 위치를 저장할 변수 l을 -10억으로 초기화 해주고, 선의 길이를 저장할 변수 len을 0으로 초기화 한다.n개의 ..

[D5] 백준 18185번 라면 사기(Small) C++ 그리디 알고리즘

리뷰 되게 쉬워보이면서도 조건이 까다로워 풀기가 어려웠던 문제https://www.acmicpc.net/problem/18185  전역 변수n, ans : 공장의 개수를 저장할 정수형 변수 n, 정답을 저장할 정수형 변수 ansnodes : 공장 정보를 입력 받을 정수형 배열, 공장의 최대값 10000보다 2가 크게 크기를 설정한다. 함수없음  문제풀이n값을 입력 받고, n개의 공장 정보를 nodes배열에 저장해 준다.다시 n번의 for문을 수행한다, 만약 nodes[i]가 0이라면 continue 처리해 준다.만약 nodes[i + 1]이 nodes[i + 2]보다 크다면 2개를 사는 것과 3개를 사는 것을 조건부로 처리해 줘야 한다.먼저 nodes[i]와 nodes[i + 1]중 최소값 만큼만 두 공..

[L3] 프로그래머스 단어 변환 C++ 백트래킹, 완전 탐색

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 시작 단어에서 한 번에 한 개의 알파벳만 바꿔 words에 있는 단어와 교체하여 목표 단어로 변경하는 문제백트래킹을 통한 완전 탐색으로 적절한 가지치기를 해가며 재귀를 실행하면 된다.  전역 변수n, len, ans : 입력되는 문자의 길이 n, words벡터의 길이 len, 정답을 저장할 변수 ansv : 이미 변경한 단어에 방문 처리를 하기 위한 정수형 변수, 벡터의 최대 길이 50으로 크기를 초기화한다. 함수1. btvoid bt(int level, string begin, const string& target, const vector words..

[L2] 프로그래머스 게임 맵 최단거리 C++ 너비 우선 탐색, BFS

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 아주 기초적인 BFS 문제였다. 맵의 왼쪽 상단에서 오른쪽 하단으로 이동하고, 걸린 시간을 출력하는 문제  전역 변수dx, dy : 상하좌우 4방향으로 이동하기 위한 방향 배열v : BFS시 방문 처리 및 걸린 시간을 계산하기 위한 정수형 배열, 맵의 최대 크기인 100 * 100으로 초기화n, m : 맵의 행의 수 n, 맵의 열의 수 mPos : BFS시 현재 위치 정보를 저장하기 위한 구조체 함수1. bfsint bfs(const vector>& maps) 맵을 탐색하며 우측 하단으로 갈 수 있는지 여부와, 걸리는 시간을 리턴하는 함수구조체 Pos..

728x90
반응형