전체 글 90

[SWEA] 1289번 - 원재의 메모리 복구하기 문제

https://swexpertacademy.com/main/solvingProblem/solvingProblem.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 0으로 초기화된 상태에서 최소 횟수로 입력값을 만드는 문제이다. 만약 한 위치에 1을 넣으면 거기서부터 끝까지 다 1로 덮어씌워지기 때문에 왼쪽에서 오른쪽으로 가면서 수를 넣으면 된다. 예를들어 0000에서 0010을 만들고자 한다면 세번째 위치에 1를 넣고 (0011) 네번째 위치에 0을 넣는다.(0010 완성) 2번이 최소횟수가 됨! 훑어가다가 0->1이 되거나, 1->0으로 바뀌는 지점이 관건이 된다. 따라서 이전값을 저장해두고 동일하면 넘어..

[백준알고리즘] 그래프 - 11724번 연결 요소의 개수 문제

https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 연결 요소란 연결되어있는 정점들의 그룹을 뜻한다고 배웠다. 그래프에 총 연결 요소들을 찾기 위해서는 dfs로 한 정점에서 시작한 모든 정점들을 방문하고, 그래도 다 방문이 되지 않은 정점이 있다면 연결 요소가 하나 이상이라는 뜻이다! 한번 dfs로 다 탐색해보면 하나의 연결요소를 다 탐색하는 것이므로 탐색하지 않은 정점이 있다면 계속 ..

[백준알고리즘] 그래프 - 1260번 DFS와 BFS

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net dfs와 bfs 구현 연습용 문제같다 구현해본 경험이 거의 없어서 강의보고 공부하면서 풀었다 시행착오가 좀 있었다.. 아직 잘 모르는 나는 이런 공부시켜주는 깔끔한 문제 좋아..^^ dfs 중간에 이부분이 꼭 있어야하나라고 주석 단 부분이 있는데 없으니 런타임 에러(InputDismatch)가 뜬다 디버깅 해보면서 이유를 찾아보려 애썼으나 아직 못찾았다..애초..

[SWEA] D3 - 1491번 원재의 벽 꾸미기 문제

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b9AkKACkBBASw SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 아오 미쳐버리겠다..일단 곱한 결과가 N을 넘지 않으면서 최대한 가까운 수가 나올 수 있는 R과 C를 찾는게 관건인데 머릿속으로 생각나는 해결방법이 다 해보는 브루트포스 방법뿐이다. 근데 N이 최대 100000라서 최악의경우 다 해보면 100억이 나오게 되는데.. 이중 for문으로 1부터 100000까지 다 구해보는 방식은 아닌것 같은데 달리 다른 방법이 떠오르지도 않고.. ..다른 사람의 코드를 ..

[백준알고리즘] 그래프 - 13023 ABCDE 문제

https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net ArrayList를 사용해본 적이 거의 없어서 이거 알아보는데만 좀 걸렸다...ㅋㅋㅋ 그래프 구현 + dfs 문제라 이 두 개념에 대한 감을 익히기 좋은 문제였던 것 같다 아직 익숙하지 않아 다른분들 코드 참고해가며 공부했다 관계와 관련된 문제일 경우 그래프 구현을 통해 풀수 있는지 먼저 생각해볼것 풀이코드 package baekjoonWeek4; import java.io.*; import java.util.ArrayList; import java.util.StringTokenizer; public ..

[백준알고리즘] 브루트포스 - 15619번 N과 M(1) 문제

n과 m이 최대 8인데에 비해 배열 크기를 작게 잡아놨어서 런타임 에러가 생겼었다. 간단히 코드 설명을 하자면 첫번째 자리부터 1로 시작하여, 1을 사용했으니 isUsed의 1번 인덱스에 사용했다고 표시하기 위해 true로 하고 일단 한자리 차지했으니 count를 증가시키고 그 다음 자리에 들어갈 수를 알아보기 위해 printSeries 함수로 재귀하여 사용하지 않은 다른 수를 할당, 체크하고 또 넘어가고 M번만큼 채워졌다면(count==M이 되었다면)출력하고 이전 위치로 돌아간다 출력하고 왔으면 방금 사용한 M-1번째의 수는 다시 false로 되돌려놓는다. count도 하나 감소시키고 그리고 다음 i번값부터 다시 체크...반복... 재귀함수가 아직 익숙치 않아 머릿속으로 그리는게 바로바로 쉽게 되진 않..

카테고리 없음 2023.04.15

[백준알고리즘] 브루트포스 - 9095번 1,2,3 더하기 문제

https://seul2ya.tistory.com/49 [백준알고리즘] 브루트포스 - 1748번 수 이어쓰기 문제 https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 1부터 N까지의 수를 쭉 썼을때 그게 총 몇 자리수가 되냐고 묻는 문제다. 만약 N이 한자 seul2ya.tistory.com 점화식을 이용해서 푸는 문젠가?? 안 어려워 보이는데 막상 풀려니 깔끔한 해결방법이 안떠오른다 흠..뭔가 이전의 정보를 이용해서 다음 값도 구해나가는 식인 것 같으면서도 어떻게 해야 할지 모르겠다 재귀를 이용해야 하는 것 같기도..나 재귀로 푸는법 잘 모르는데 강의를 봐도 제대로 ..

알고리즘 2023.04.13

[백준알고리즘] 브루트포스 - 1748번 수 이어쓰기 문제

https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 1부터 N까지의 수를 쭉 썼을때 그게 총 몇 자리수가 되냐고 묻는 문제다. 만약 N이 한자리 수라면 N이 그대로 자리수가 되고 N이 두자리수라면 일의 자리수(1~9) 9개 + 10부터 N까지 개수 x 2 가 될것이다.(두자리수니까 x2해야함) 예를들어 10부터 N개의 가짓수를 구하려면 N-10 + 1하면 되니까 N이 세자릿수라면 일의 자리수 9개 + 두자리수 10~99까지 90개 x2 + (N-100 + 1) x 3 이런식으로 수학적으로 계산하도록 코드를 짜면 된다. 이런 식으로 계산한다면 N이 가장 큰 1억개가 된다..

[백준알고리즘] 브루트포스 - 14500번 테트로미노 문제

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 테트로미노 도형은 총 5가지가 있는데 회전/반전까지 포함하자면 총 19개의 모양이 나올 수 있다. NxM크기의 배열 내에 이 19개의 도형을 다 넣어보고 최대값을 찾으면 된다. N,M은 최대 500이므로 최악의 경우라도 19 x 500 x 500 하면 (도형들이 배열안에 다 꽉차게 들어갈순 없으므로 이보다 실제로는 작은수겠지만)대략 4750000개가 된다. 1억에 비하면 작은 수이므로 시간제한 2..

[백준알고리즘] 브루트포스 - 6064번 카잉 달력 문제

https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 1. 전에 했던 년도 계산 문제와 비슷하게 풀릴까 하고 거의 똑같이 코드를 짜서 했지만 백준 사이트에서 시간초과가 떴다. 그럼 그렇지..이 문제를 강의에서 다루는데에는 이유가 있겠지.. 반복을 마지막 해인 이 되기 전까지만 하도록 했는데 표현 불가능한 수를 끝까지 다 돌려보려니 시간이 초과가 되나 싶어서 어떻게 해야 표현 가능할지 아닐지를 돌려보기 전에 판단할수 있을까 이리저리 고민해보았지만 모르겠다..