해결방법 미로찾기 문제인데, 상하좌우로 길이 있는지 방문합니다. 길이 있으면 BFS로 데이터를 집어 넣고 한개씩 빼면서 그 다음 곳을 방문하는 것을 반복하면 됩니다. DFS로 하면 깊이탐색이기 때문에 최악의 거리가 나올 가능성이 많기 때문에 사용하시면 안됩니다. BFS는 주변부터 탐색이기 때문에 탐색하면서 최종 도착지가 나오면 그 값이 최단 거리이기 때문입니다. 이번에는 자바로 해봤습니다. 소스코드 import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Deque; public class Solution { public static void main(String[] args) { in..
https://aperitif.io/ Aperitif.io | The recipe for successful web templates The recipe for successful web templates aperitif.io 기본적인 홈페이지 틀을 만들어 줍니다. 여기서 Let's GO를 누르게 되면 이런 화면이 나옵니다. 해더부터 내가 넣고 싶은대로 막 집어 넣어주면 됩니다. 그리고 오른쪽 상단에 GENERATE를 누르면 템플릿을 html파일로 만나볼 수 있습니다. 심지어 반응형으로 만들어지네요.. 마음놓고 백앤드만 하실 수도 있고 약간만 조정해서 홈페이지를 뚝딱 만들 수 있겠네요.
책은 2019 시나공 정보처리기사 필기 공부는 1단원부터 5단원까지 원노트를 이용해서 개념을 정리하면서 기출문제에 왜 틀린 것들을 다 원노트에다 정리했습니다. 학교도 다니면서 중간고사도 껴서 공부하기 힘들었지만. 2시간 30분 잡고 정리하면서 이틀에 1단원씩 정리를 다 하고 중간고사를 보면서 더 짤막짤막하게 정리 했던거 같아요 그리고 기출문제 책에있는거 다 풀고 왜 틀렸던 내용 다시 원노트에 정리하고(예상문제 안풀었습니다. 너무어려워서;;), 7개 기출을 계속 반복 했습니다. 2019년 정보처리기사 2회 필기시험 난이도 체감은 데이터베이스 : 쉽다 전자계산기 구조 : 그럭저럭? 운영체제 : 그럭저럭.. (어려운건 아닌데 많이 틀림) 소프트웨어공학 : 역대급 쉬움(거이 90%가 기출문제) 데이터통신 : 조..
후보키 해결방법 후보키로 나올 수 있는 방법은 해당 어트리뷰트의 부분집합이 됩니다. 이것은 조합으로 구하고 해당 집합에 대한 칼럼을 벡터(배열)에 그 벡터 통채로 map의 KEY로 집어 넣었습니다. 그래서 Key가 같으면 후보키로 성립하지 않게 되는 것이죠. 이렇게 구하면 유일성은 걸러낼 수 있습니다. 그 다음 최소성을 만족하기 위해 남은 부분집합들은 부분집합끼리 포함되는 관계에서 포함시키는 부분집합을 제거해줘야 최소성을 만족 시 킵니다. 소스코드 #include #include #include #include #include using namespace std; void combination(vector &combinations, vector order, vector value, int current_..
블록게임 문제를 너무 막 풀어서 코드가 너무 길어버렸네요;; 가로 2X3 세로 3X2 가능한 블록만 모여나서 하나하나 비교하는 형식으로 풀었습니다. 비교했는데 비교한 전부 비교가 가능하면 지워나가는 형식으로 했습니다. possible배열은 가장 위에 어떤 블록이 있는가를 설정해서 벽이 있으나 해당 줄에 2개가 있을 경우 qqq(이름 뭘로 지을지 몰라서 막지음)변수에 저장, qqq가 2개 있을 경우 검은 블록을 안떨어뜨려도 된다고 코드를 짰습니다. 소스코드 #include #include #include #include using namespace std; bool checkgaro(vector &possible, vector &board, int i, int j, int &answer); bool che..
실패율 해결 방법 각 단계마다 스테이지에 도달했으나 아직 클리어하지 못한 플레이어수각 단계마다 스테이지에 도달한 플레이어 수를 다 구해줘야 합니다. N단계까지를 index 2개를 만들어줍니다(pass, notpass) stage벡터에 한개씩 데이터를 읽는데 3단계에서 멈춘사람은 notpass배열 3번째 인덱스를 증가시켜주고 pass배열에 1~3를 증가시켜줘야합니다.이렇게 다 돌면각 단계마다 실패율을 구할 수 있고 인덱스와 실패율을 저장한 구조체를 정렬해서 결과값을 받아오면 됩니다. 소스 코드 #include #include #include using namespace std; struct Result { int number; double fail; }; bool pred(Result a, Result b..
오픈채팅방 해결 방법istringstream를 이용하면 공백을 token으로 분리할 수 있습니다. 그리고 map을 통해서 으로 Key, Value를 잡고Enter와 Change를 만날때마다 계속해서 유저아이디의 닉네임을 계속 바꿔줍니다.그리고 다시 처음부터 해서 바꿔진 유저아이디+메시지로 반환해주면 됩니다. 소스 코드 #include #include #include #include using namespace std; vector solution(vector record) { vector answer; vector log(record.size(),vector(3)); map user; for (int i = 0; i > log[i][0]; iss >> log[i][1]; iss >> log[i][2]; ..
무지의 먹방 라이브 저는 왜 이런게 어려울까요. 입출력 예 food_times : [3,1,2]k : 5result : 1 해결방법 보면 문제가 굉장히 쉬울 줄 알았습니다만 큐에다가 원하는걸 food_times 인덱스들을 담고 k를 1개씩 검사하는 알고리즘으로 채점을 하면 시간초과로 틀려버렸습니다, 이리저리 해매다가 코드가 복잡해버려졌네요. 제가 생각하는 방법은 k를 한바퀴씩 가야되겠다고 생각했습니다. 예제를 보면 1번 음식이 3번이기 때문에 1번음식을 기준으로 한바퀴씩 돌려야 한다고 생각했습니다.가장 큰 인덱스를 구하는 max_index를 구했습니다. 여기서 인덱스가 중간에 있으면 0번부터 max_index까지 1번씩은 섭취했기 때문에 food_times를 1개씩 빼야 했습니다.그리고 한바뀌 돌때마다 ..