목록전체 글 (149)
되면한다
https://school.programmers.co.kr/learn/challenges?order=recent&partIds=20069 코딩테스트 연습 | 프로그래머스 스쿨 개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요! school.programmers.co.kr 1. 신규 아이디 추천 특징: 문자열 처리 어려웠던 부분: 문자열(string str)을 순회하면서, 조건에 맞으면 erase하는 함수를 사용했는데, erase함수 사용시, str.size()변화가 있어서 이부분을 처리하는 게 까다로웠다. 구현방법: 열심히 구현 찾아본 함수 string erase: erase(지우려는 문자열의 ..
https://www.acmicpc.net/problem/16113 16113번: 시그널 zxcvber는 외계인을 연구하는 과학자다. 그는 지난 10년간 우주에서 오는 시그널를 연구했지만, 아무런 성과가 없었다. 그러던 어느 날, 갑자기 우주에서 이상한 시그널이 오기 시작했다. zxcvber는 www.acmicpc.net 1. 특징 1) bfs 2. 구현 방법 1) 입력으로 받아온 문자열을 n이 5인 배열에 # 이면 1, .이면 0으로 넣는다. 2) 배열의 n이 0인 부분을 순회하면서, 1이면 bfs를 돈다 -> 0 이면 1인 값이 총 11개 -> 1 이면 1인 값이 총 5개 -> ... 3) 1의 개수가 0, 6, 9일 때 12개, 2, 3, 5일때 11개 이므로, 이때는 해당 숫자의 특정부분이 1인지..
https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 테케를 보면서 풀이법을 생각해봤는데, 이거다 하는 풀이법이 없었다.... 참고한 블로그 https://algosu.tistory.com/152 [C++] 프로그래머스 - 표현 가능한 이진트리 https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발..
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 1. 특징 1) 그리디 2) 구현 2. 구현 방식 1) 그리디조건: -와 - 사이의 +는 모두 합해준다. 55-50+3+2+40-4-3 이면, 55-(50+3+2+40)-4-3을 해준다. 2) split 함수를 이용하여, '+', '-'를 기준으로 숫자를 나눈다. +: 처음으로 - 뒤의 + 가 등장하면: sum = tmp의 숫자 연속으로 +가 등장하면: sum+= tmp의 숫자 -: sum이..
https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이법을 떠올리기는 어렵지 않은데, 구현이 복잡하다. 1. 특징 1) 스택을 사용한 구현 2. 구현 방식 1) 날짜(월:일)혹은 시간(시:분)으로 주어진 경우 월*30 + 일, 시 * 60 + 분 등으로 계산하여, 단위를 각각 일, 분으로 맞춰준다. 해당 문제에서 시:분으로 과제 시작시간이 들어오기 때문에 12:10로 들어온 시간을 12*60 + 10으로 계산했다. 2) plans 벡터를 들어온..
https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 1. 특징 1) 우선순위큐를 이용한 다익스트라 2. 구현방식 1) 출발도시(정점)별 를 설정함. vector adj[1004]; //비용, 도착도시 (출발도시별) 2) 정점까지 오는 최단 거리를 나타내는 배열을 선언하고, MAX값으로 초기화함. int d[1004]; fill(d, d + n + 1, INT_MAX); 3) 우선순위 큐를 이용한 다익스트라 알고리즘..
https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 1. 특징 1) 위상정렬: 방향 그래프에서 간선이 주어진 정점 간 선후관계를 위배하지 않도록 나열하는 정렬 (사이클이 없는 방향 그래프에서만 잘 정의됨) 2. 구현 방식 1) 각 정점으로 들어오는 간선의 개수를 deg배열에 저장함. int deg[]; //각 정점의 indegree 수 2) deg[i]가 0이 되는 정점은 queue에 삽입 3) queue..
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 1. 특징 1) 다익스트라 2. 구현 포인트 1) 마을을 순회하면서, 다익스트라 알고리즘: i마을에서 x마을까지 최단거리를 구하고, 배열에 저장 2) 기본적인 다익스트라 알고리즘: x마을에서 모든 마을까지 3. 코드 #include #include #include #include #include using namespace std; int n, m, x; vector..