본문 바로가기

전체 글657

[BOJ][17143] 낚시왕 문제 : www.acmicpc.net/problem/17143 시뮬을 돌려봅시당. 상어의 위치를 key값, 상어 정보(크기, 방향, 속도)를 value로 하는 map을 하나 만든다. 낚시꾼은 열의 왼쪽부터 오른쪽으로 한 칸 씩 정기적으로 이동한다. 따라서 0열부터 R-1까지 이동하면서 탐색중인 열의 0행부터 C-1까지 상어들을 탐색하며 가장 위에 있는 상어 정보를 가져온다. 해당 상어를 낚시왕이 잡게 될 것이고 따라서 이 ㄴ상어의 크기를 정답에 더해준 뒤 상어 map에서 삭제한다. 낚시왕이 어떤 상어를 잡게 될지 시뮬해보았기 때문에 이제 상어들을 이동시킨다. 상어의 이동방향대로 이동시키면 되는데 문제는 속도이다. 속도의 최대값은 1000이여서 모든 상어들(RxC = 10000)을 낚시왕이 상어를 잡는 동.. 2020. 11. 15.
[201109] 운전면허 - 필기시험 일어나자마자 신분증 만육천원지폐, 사진을 고이 주머니에 넣고 용인면허시험장으로 향했다. 오늘은 출근전에 필기시험을 볼것이다. 한큐에 통과하기 위해 주말에 문제은행 천문제를 다봤다. 시험장에 들어가면 오른쪽에 있는 시험접수장으로 갔다. 들어가기전에 코로나 대비를 위해 전화번호 주소 입장시간을 적은 뒤 체온측정을 했다. 정상체온이 뜨면 체온계 왼쪽에 있는 노란색 스티커를 하나떼서 들고 접수장에 들어가면 된다. 나는 왼손에 붙이고 입장했다. 시험장 들어가면 은행같이 서류들이 있고 쓰는공간이 있는데 면허시험접수서류가 안보여서 입구 왼편에 있는 안내라고 적힌 곳으로 가서 필기면허시험보러 왔다고 말씀드렸다. 교육 수강여부, 건강검진 여부를 질문하시고 다 했다고 대답하니 바로 앞에 비치되어있던 서류 가리키시며 저걸 .. 2020. 11. 9.
[programmers][월간 코드 챌린지 시즌1] 스타 수열 문제 : programmers.co.kr/learn/courses/30/lessons/70130 조건들 중 정답에 가장 큰 영향을 끼치는건 스타 수열의 교집합 숫자이다. a 배열을 탐색하면서 같은 수를 가지는 배열 인덱스를 저장한다. 즉, numbers 2차원 배열을 만드는데 numbers[number] 는 a 배열에서 number 값을 가지는 인덱스들을 저장한다. [5,2,3,3,5,3]을 예로들면 numbers[2] = {1}, numbers[3] = {2,3,5}, numbers[5] = {0,4}가 저장된다. 이제 numbers 배열을 탐색하면서 number의 짝이 최대 몇개나오는지 구하고 이들 중 최대값이 정답이 된다. [0,3,3,0,7,2,0,2,2,0]을 예로들어보자. numbers 배열을.. 2020. 11. 8.
[BOJ][17144] 미세먼지 안녕! 문제 : www.acmicpc.net/problem/17144 구현문제. 먼지가 이동한 뒤의 모습을 저장할 배열 (let, newArr)을 하나 만든다. newArr은 0으로 초기화한다. 먼저 먼지의 확산된 모습을 newArr 배열에 담는다. 집 배열을 탐색하면서 해당 칸(let, (x,y))의 값이 -1 이면 공기청정기 이므로 나중에 공기청정기 확산할 때를 대비해 해당 좌표를 cleaners 배열에 담아두고 다음을 탐색한다. 0 이면 먼지가 없다는 뜻이므로 다음을 탐색한다 양수값이면 먼지가 확산시킨다. 상하좌우로 이동한 좌표값을 (nx, ny)라 하자. (nx, ny)가 RxC 배열칸을 넘어가지 않고 집에서 nx, ny 좌표값이 -1이 아닌경우(공기청정기) 해당 칸으로 먼지가 확산될 수 있으므로 new.. 2020. 11. 8.
[programmers][월간 코드 챌린지 시즌1] 이진 변환 반복하기 문제 : programmers.co.kr/learn/courses/30/lessons/70129 s에는 '1'이 최소 하나 포함되어 있다고 하는데 그럼 s가 "0"이 될 가능성이 없다는 뜻이다. 이진법으로 변환하면 나올 수 있는 한자리를 가진 문자열은 "0", "1"인데 "0"은 나올 수 없다고 제한사항에 있기 때문에 s 길이가 1인 경우 문자열은 반드시 "1"이 된다. 따라서 반복문 종료조건을 s 길이가 1보다 큰 경우로 잡았다. => 해당 반복문 반복횟수를 cnt라 한다. s 문자열을 탐색하면서 '0'의 개수를 센다. 이를 0의 총 개수를 저장하는 변수(let, zeroCnt) 1에 더해서 갱신해준다. x의 모든 0을 제거한 뒤 x의 길이를 c 라고 한다면 결국, x(= 문자열 s)의 총 길이에서 0.. 2020. 11. 7.
[programmers][월간 코드 챌린지 시즌1] 내적 문제 : programmers.co.kr/learn/courses/30/lessons/70128 배열 a, b 길이를 N이라 할 때, N만큼 반복하면서 a[i] * b[i]의 합을 구해서 반환한다. 시간복잡도는 O(N). 소스코드 : github.com/fpdjsns/Algorithm/blob/master/programmers/%EC%9B%94%EA%B0%84%20%EC%BD%94%EB%93%9C%20%EC%B1%8C%EB%A6%B0%EC%A7%80%20%EC%8B%9C%EC%A6%8C1/%EB%82%B4%EC%A0%81.cpp 2020. 11. 7.