알고리즘
-
링크 : https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net TIL 2) 이 문제를 통해 얻어갈 것 구간합 (대푯값) -> 인덱스드 트리 or 세그먼트 트리 !! update() : 수의 빈번한 변경을 위한 업데이트. query() : 구간의 대푯값을 위한. 흔히 find()라고 일컫기도 인덱스드 트리 넘 어렵당 .. 흑흑 내 힘으로 할 수 있는게 없었다 흑흑 반복 마니 해야겠다 그러므로 정답코드는 올리지 않겠다 .. 거의 내것이 아니므로 .. 이 문..
[C++] 백준 BOJ - 개똥벌레 (3020)링크 : https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net TIL 2) 이 문제를 통해 얻어갈 것 구간합 (대푯값) -> 인덱스드 트리 or 세그먼트 트리 !! update() : 수의 빈번한 변경을 위한 업데이트. query() : 구간의 대푯값을 위한. 흔히 find()라고 일컫기도 인덱스드 트리 넘 어렵당 .. 흑흑 내 힘으로 할 수 있는게 없었다 흑흑 반복 마니 해야겠다 그러므로 정답코드는 올리지 않겠다 .. 거의 내것이 아니므로 .. 이 문..
2023.01.25 -
풀었지만 다시한번 풀어볼 문제 구글링의 도움을 많이 받은 문제 더보기 이진 검색 트리(5639) : https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 개념 자체를 꾸준히 상기시켜야할 문제 더보기 이진 검색 트리(5639) : https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 ..
[알고리즘] 리뷰 리스트풀었지만 다시한번 풀어볼 문제 구글링의 도움을 많이 받은 문제 더보기 이진 검색 트리(5639) : https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 개념 자체를 꾸준히 상기시켜야할 문제 더보기 이진 검색 트리(5639) : https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 ..
2023.01.25 -
링크 : https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던건 아니고 나는 역으로 생각했다 잘못생각함..ㅎ 잊을때쯤 다시한번 풀어보자용 아래서 위로 파악해야되는데, 위에서 아래로 파악하려했음 주어진 테스트케이스는 다 만족해서 잘 구현한줄알고 제출했는데 틀려서 왜인가했더니 !! 질문 게시판에 나랑 똑같이 생각한 사람이 있었당 ㅎㅎ 위에서 아래로 dp하다보면 충돌하는 케이스 생기는 .. 하나씩 써보면 알았을텐데.. 침착하고 꼼꼼..
[C++] 백준 BOJ - 내려가기 (2096)링크 : https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던건 아니고 나는 역으로 생각했다 잘못생각함..ㅎ 잊을때쯤 다시한번 풀어보자용 아래서 위로 파악해야되는데, 위에서 아래로 파악하려했음 주어진 테스트케이스는 다 만족해서 잘 구현한줄알고 제출했는데 틀려서 왜인가했더니 !! 질문 게시판에 나랑 똑같이 생각한 사람이 있었당 ㅎㅎ 위에서 아래로 dp하다보면 충돌하는 케이스 생기는 .. 하나씩 써보면 알았을텐데.. 침착하고 꼼꼼..
2023.01.23 -
링크 : https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던건 아니고.. ㅎㅎ 뭔가 완전탐색 dfs일거같은데 영 감이 안왔다. 완전 초반 접근은 2차원 배열을 생각했다가, 굳이 필요 없을거라는 생각에 치킨집을 벡터로 뺐다. 그렇게 두니 자연스레 가정집도 분리하여 벡터로 뺐다. dfs를 구현하고, 탈출조건 전까지 가정집 벡터를 돌며, 그 루프 안에서 폐업하지 않은 치킨집을 돌며 뭔가 치킨거리..
[C++] 백준 BOJ - 치킨 배달 (15686)링크 : https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던건 아니고.. ㅎㅎ 뭔가 완전탐색 dfs일거같은데 영 감이 안왔다. 완전 초반 접근은 2차원 배열을 생각했다가, 굳이 필요 없을거라는 생각에 치킨집을 벡터로 뺐다. 그렇게 두니 자연스레 가정집도 분리하여 벡터로 뺐다. dfs를 구현하고, 탈출조건 전까지 가정집 벡터를 돌며, 그 루프 안에서 폐업하지 않은 치킨집을 돌며 뭔가 치킨거리..
2023.01.23 -
링크 : https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던 점이라기보단, >모음은 최소 한개, 자음은 최소 두개< 라는 조건을 어떤식으로 구현할지에 대해 .. 나는 dfs 탈출조건에서 마지막에 확인하게 한거라 약간 비효율적이지 않나 싶었다. 모음은 다섯개고, 자음은 모음 이외니까 쉽게 처리할수있었지만, 만약 더 갯수가 여러개거나 복잡해진다면, 결코 내 방법은 효율적이라고 보기 어려울듯하다. 마지막 dfs까지 갈 필..
[C++] 백준 BOJ - 암호 만들기 (1759)링크 : https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던 점이라기보단, >모음은 최소 한개, 자음은 최소 두개< 라는 조건을 어떤식으로 구현할지에 대해 .. 나는 dfs 탈출조건에서 마지막에 확인하게 한거라 약간 비효율적이지 않나 싶었다. 모음은 다섯개고, 자음은 모음 이외니까 쉽게 처리할수있었지만, 만약 더 갯수가 여러개거나 복잡해진다면, 결코 내 방법은 효율적이라고 보기 어려울듯하다. 마지막 dfs까지 갈 필..
2023.01.23 -
링크 : https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net TIL 1) 풀면서 놓쳤던점 하 .. 최종 구현할때 질게에 있는 반례 다 잘돌아가고 시간복잡도 넉넉한데 왜 틀렸을까하고 코드 첫부분부터 보다가 깨달았음ㅋ 전역 배열 선언할때 사이즈 서로 착각해서 잘못 선언해놨던것임 하하 하하하하 하하하 .. 사실 안웃겨 그리고 문제 조건에서 오래된거 없애는거 보고 처음 접근할땐 무작정 큐로 했는데 사실 내가 사용했던 자료구조로는 큐쓰면 해당 학생..
[C++] 백준 BOJ - 후보 추천하기 (1713)링크 : https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net TIL 1) 풀면서 놓쳤던점 하 .. 최종 구현할때 질게에 있는 반례 다 잘돌아가고 시간복잡도 넉넉한데 왜 틀렸을까하고 코드 첫부분부터 보다가 깨달았음ㅋ 전역 배열 선언할때 사이즈 서로 착각해서 잘못 선언해놨던것임 하하 하하하하 하하하 .. 사실 안웃겨 그리고 문제 조건에서 오래된거 없애는거 보고 처음 접근할땐 무작정 큐로 했는데 사실 내가 사용했던 자료구조로는 큐쓰면 해당 학생..
2023.01.23 -
링크 : https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 정답 코드 #include #include int N, M,num[10000+1]; int pNum[10000 + 1]; bool visit[10000 + 1]; void dfs(int cnt) { //cnt는 0~M-1까지. M개의 배열을 출력하기 위함 if (cnt == M) { for (int i = 0; i < M; i++) { printf("%d ", pNum[i]); } p..
[C++] 백준 BOJ - N과 M (10) (15664)링크 : https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 정답 코드 #include #include int N, M,num[10000+1]; int pNum[10000 + 1]; bool visit[10000 + 1]; void dfs(int cnt) { //cnt는 0~M-1까지. M개의 배열을 출력하기 위함 if (cnt == M) { for (int i = 0; i < M; i++) { printf("%d ", pNum[i]); } p..
2023.01.22 -
어느덧 마지막 이론 .. 이주동안 수고한 나자신과 우리 모두에게 박수 ~ .. 넘 스트레스 많이 받고 했었는데 이제 끝이라니까 또 아쉽구 그르넹 역시 주어졌을때 최선을 다해 임해야 ㅎ ㅏ는것 .. 대망의 DP ! 시작 ! Chap 6. 동적 계획법 DP의 대략적인 두가지 방법 재귀로 메모이제이션 Memoization 반복문으로 타뷸레이션 Tabulation 1. 배낭 채우기 문제 (Knapsack Problem) 도둑이 N가지의 보석이 무한히 있는 가게에 들어와, W kg을 넣을 수 있는 배낭에 보석을 넣어 훔쳐갈 때, 훔쳐가는 보석들의 가치의 합의 최대는 얼마이며, 어떤 보석을 얼마나 가져가야 하는가? Case 1. N
[TIL] 알고리즘 : 동적계획법 DP어느덧 마지막 이론 .. 이주동안 수고한 나자신과 우리 모두에게 박수 ~ .. 넘 스트레스 많이 받고 했었는데 이제 끝이라니까 또 아쉽구 그르넹 역시 주어졌을때 최선을 다해 임해야 ㅎ ㅏ는것 .. 대망의 DP ! 시작 ! Chap 6. 동적 계획법 DP의 대략적인 두가지 방법 재귀로 메모이제이션 Memoization 반복문으로 타뷸레이션 Tabulation 1. 배낭 채우기 문제 (Knapsack Problem) 도둑이 N가지의 보석이 무한히 있는 가게에 들어와, W kg을 넣을 수 있는 배낭에 보석을 넣어 훔쳐갈 때, 훔쳐가는 보석들의 가치의 합의 최대는 얼마이며, 어떤 보석을 얼마나 가져가야 하는가? Case 1. N
2023.01.19