본문 바로가기

전체 글

(118)
백준 17244 : 아맞다우산 c++ www.acmicpc.net/problem/17244 17244번: 아맞다우산 경재씨는 저녁 약속을 가기 전 챙기지 않은 물건들이 있는 지 확인하고 있다. 필요한 물건은 전부 챙긴 것 같았고 외출 후 돌아오는 길에 경재씨는 외쳤다. "아 맞다 우산!!!" 경재 씨는 매번 외출 www.acmicpc.net 후기 1. 완벽하다고 생각해도 틀리면 극단적인 예시를 생각하자!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2. 물건 하나도 없는 경우 생각안해서 런타임으로 진짜 1시간은 코드 째려본듯 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 풀이 1. 순열로 물건 집을 순서 정한다 2. 시작점 -> 물건들 -> 문 이렇게 거리 각각 구해서 더함 3. 거리 구하는건 언제나 하는 BFS -> 조금 특이하게 벽으로 둘러쌓여있어서 ..
백준 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 ..