c++ (77) 썸네일형 리스트형 백준 2206 : 벽 부수고 이동하기 C++ https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로�� www.acmicpc.net 후기겸 풀이 1. 처음에 입력받을때 map[i][j]가 1인 좌표들을 wall 이라는 vector로 만들고, 순서대로 하나씩 벽 없애고 BFS 돌리니까 바로 시간초과 뜨더라....ㅎ 2. 그래서 구글링으로 벽 부순상태인지 아닌지 확인용 flag 추가하는 풀이 확인! -> visited도 벽을 부순 상태랑 안부순 상태 구분! -> int visit[1000][1000][.. 백준 2146 : 다리만들기 C++ www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 풀이 1. 섬들 다 label링 -> 입력받을때 -1로 변환시키고 1부터 순서대로 label링 하면 편하드라 2. 각 섬별로 다른 섬에 지을 수 있는 다리 길이 중 최소값들 구하고 answer랑 비교 -> 처음에 섬 좌표 몽땅 queue에 집어놓고, queue 크기로 조절하면서 한단계씩 BFS!! -> 섬과 섬 사이가 n칸 떨어져 있으며 길이 n-1짜리 다리 놓으면 됨!!! (이거 때문에 헷갈려서 고생했으요) #in.. 백준 1254 : 팰린드롬 만들기 www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 � www.acmicpc.net 1. 처음에 바보같이 맨 뒤에만 문자 추가할 수 있다는거 못보고 insert를 써서 풀었었다 #include #include using namespace std; int main() { string a; cin >> a; int flag = 1; while (flag == 1) { flag = 0; int start_index = 0; int end_index = a.size() - 1; while (start_.. 백준 17135 : 캐슬 디펜스 C++ www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 후기 1. 무난하게 풀릴줄 알았는데 테케에 많이 걸려서 고생 무쟈게 한 문제 2. 거리가 똑같은게 여러개면 가장 왼쪽거 죽여야되는거를 적용안해서 계속 틀려서 너무 빡쳤었다 풀이 1. 조합으로 궁수 위치 설정 2. 나는 게임 끝나는거를 어차피 n이 15이하니까 그냥 n번만큼 루프 돌게 했다 3. 각 루프마다 죽일 적 정하고, 죽이고, 적들 한칸씩 내려오고 이 순서대로! 심플! #include #include #include.. 프로그래머스 : 풍선 터트리기 C++ programmers.co.kr/learn/courses/30/lessons/68646?language=cpp 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 후기 1. 완벽하게 풀었다 생각해쓴데 시간초과가 떳다 #include #include #include using namespace std; int solution(vector a) { int answer = 2; int min1; int min2; for(int i=1;i dp2[i+1]) continue; answer++; } return answer; } 프로그래머스 : 숫자게임 C++ programmers.co.kr/learn/courses/30/lessons/12987?language=cpp 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 � programmers.co.kr 후기 1. 처음에 단순하게 순열로 생각했다가 시간초과 떳다 #include #include #include using namespace std; vector AA; int visited[100001]={0,}; int answer = 0; void play_game(vector new_b) { int temp=0; for(int i=0.. 백준 17406 : 배열 돌리기 4 c++ www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 후기 1. 시간은 쫌 걸렸지만 난이도는 어렵지 않은 시뮬레이션 문제!! 2. 돌리기 작동시키는게 조금 오래걸린다 3. 순서 정하는거도 순열로 하면 편하다!!!!(이걸 얻어갑니다) 풀이 1. 순열로 명령어 순서 정하기 2. 정한 순서대로 회전 시행 3. 돌리기 다 끝났으면 답 업데이트 #include #include #include using namespace std; struct .. 백준 17371 : 게리맨더링 c++ www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 후기 1. 각 도시별로 연결 여부를 확인하는게 제일 힘들었다. 2. 당연히 queue 써야되는건데 생각이 안나서 vector로 하려다가 쌩고생했다 3. 이렇게 구글링 안하고 기출문제 풀면 기분이 좋다 ㅎㅎ 풀이는 주석에 친절하게 적혀있지만 그래도 요약하자면 1. n명을 두팀으로 나누는건 '1~ 2/n'명을 1팀, 나머지를 2팀으로 하면된다 2. 조합을 써서 지역 나눈다 3. 지역들끼리 서로 연결이 잘 되어 있나 확인!! ( 팀 가능.. 이전 1 ··· 5 6 7 8 9 10 다음