본문 바로가기

C++

(64)
[백준] 13549번: 숨바꼭질3 (C++ 풀이) 문제풀이기존의 숨바꼭질[1697] 문제에서 순간이동 하는 부분만 시간을 증가시키지 않았다.그리고 순간이동을 제일 먼저 실행하도록 했다.왜냐면 순간이동 하는 방법이 제일 최단거리가 되니까!코드결과
[백준] 12851번: 숨바꼭질2 (C++ 풀이) 문제풀이큐에 현재지점과 걸린시간을 저장했다.숨바꼭질1과는 다르게 push할때 말고, pop할때 방문표시를 해야한다.push할때 방문표시를 하면, 동생을 잡은 최초 한번만 탐색할 수 있기 때문이다.목적지에 처음 방문한 경우(동생을 처음 잡은 경우)에는 답을 갱신해주고, 잡은 횟수를 1증가 시키고,그 이후로 방문할 경우에는 잡은 횟수만 1씩 증가시켜준다.그러다가 큐에 걸린시간이 답보다 커지면 더이상 볼 필요가 없기 때문에 리턴해주었다.코드결과
[백준] 13458번: 시험 감독 (C++ 풀이) 문제풀이N개의 시험장을 돌면서 필요한 감독관을 셌다.총감독관만 필요하면 cnt[i]에 1을 저장하고,총감독관만으로 부족해서 부감독관도 필요하면 총감독관이 감시하고 남은 응시생들에 대해 %와 /연산을 적절히해주었다.N이 1,000,000이기 때문에 N^2이 되지 않도록 해주어야하고,(처음에 while문으로 부감독관 수 세었다가 시간초과나서 연산으로 바꿧다,,)정답 변수 ans는 최대 1,000,000 * 1,000,000이 될 수 있기 때문에 long long 타입으로 해주어야한다.코드결과그레이코더가 된 모습,,ㅠㅠ
[백준] 14888번: 연산자 끼워넣기 (C++ 풀이) 문제풀이연산자의 순서를 dfs를 통해 정하면 된다.수식이 만들어지면 for문을 통해 앞에서 차례대로 계산하면 된다.최소값의 초기값을 10억+1로 하고, 최대값의 초기값은 -(10억+1)로 했다.코드결과
[백준] 14503번: 로봇 청소기 (C++ 풀이) 문제풀이dfs와 bfs 합친 문제 이런건 줄 알았는데 그냥 재귀로 열심히 구현하는 문제같다.주의해야할 것은 로봇이 집안을 다 청소하는 게 아니다! 그냥 갈데가 없으면 즉, 후진할 수 없으면 끝나는 문제다.재귀 구현이 아직 익숙하지 않고 서툴러서 블로그들을 둘러보며 100퍼센트 이해하지 못한채 코드를 제출했다...방향 인덱스에 대해 %(나머지 연산)을 적절히 사용하는 것에 익숙해져야 한다. 코드결과삼성 기출 하루에 하나라도 풀자라는 마음으로 하긴 했지만,, 너무 어려웠다ㅜㅜ [+자바]풀이boolean형의 flag변수를 하나 두고, while(true)를 돌면서 청소를 진행한다.1. 현재 위치를 일단 청소한다 vis[r][c] = 1 (vis배열은 청소를 했는지 안했는지 여부를 표시하기 위한 배열)2. 현재..
[백준] 2502번: 떡 먹는 호랑이 (C++ 풀이) 문제풀이첫째날 for문 (i : 1 ~ K) 과 둘째날 for문 (j : i ~ K)로 돌면서 D에 K가 되는 i와 j를 구하면된다. 코드결과
[백준] 2501번: 약수 구하기 (C++ 풀이) 문제풀이1부터 n까지 나누어 떨어지는 숫자를 벡터에 넣어놓고k가 벡터의 사이즈보다 큰 값이면 0을 출력,아니면 k-1번째 수를 출력한다.코드결과
[백준] 1743번: 음식물 피하기 (C++ 풀이) 문제풀이bfs탐색을 통해 가장 넓은 구역의 넓이를 구하면된다.코드결과