그럴듯한 개발 블로그
article thumbnail
백준 2580 스도쿠 c++
<algorithm>/백준 2023. 12. 15. 19:02

https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net 처음 풀이 : 레퍼런스로 넘기고 set 사용 때문에 시간 초과 난 것 같다. // 스도쿠 시간초과; #include #include #include using namespace std; vector board(9, vector(9, 0)); vector empty_xy; // 0 1 2 3 4 5 6 7 8 void eraseInvalidNum(int x, int y, set& s) { int s..

백준 14430 자원 캐기 c++
<algorithm>/백준 2023. 12. 13. 16:58

https://www.acmicpc.net/problem/14430 14430번: 자원 캐기 인류의 차세대 인공지능 자원 캐기 로봇인 WOOK은 인간 대신 자원을 캐는 로봇이다. WOOK은 언제나 제한된 범위 내에서 자원을 탐색하며, 왼쪽 위 (1, 1)부터 오른쪽 아래 (N, M)까지 자원을 탐색한다. www.acmicpc.net 문제 보자마자 dfs로 풀었다. 결과는 바로 시간 초과 col 300 row 300이라 dfs로 안되는걸 알았어야 했는데;; // 자원 캐기 #include #include using namespace std; vector board; int col, row, res; void dfs(int x, int y, int cnt) { if (x == col - 1 && y == r..

article thumbnail
백준 2116 주사위 쌓기 c++
<algorithm>/백준 2023. 12. 12. 15:19

https://www.acmicpc.net/problem/2116 2116번: 주사위 쌓기 첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는 www.acmicpc.net 요즘 문제 풀이 귀찮아서 안 올리는데 화딱지 나서 올린다. 주사위 잘 보면 (0,5) (1,3), (2,4) 다 하하 진짜 어이가없네 구현 자체는 굳이 map으로 두지 않아도 인덱스 계산으로 충분히 가능하다. 근데 내 비루한 두뇌론 헷갈려서 걍 밀고 매 층마다 map 따로 두어서 해결했다. // 주사위 쌓기 #include #include #include using namespace std; // (0..

백준 1025 제곱수 찾기 c++
<algorithm>/백준 2023. 11. 28. 22:49

https://www.acmicpc.net/problem/1025 1025번: 제곱수 찾기 첫째 줄에 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 표에 적힌 숫자가 1번 행부터 N번 행까지 순서대로 한 줄에 한 행씩 주어진다. 한 행에 적힌 숫자는 1번 열부터 M번 열까지 순서대로 주어지 www.acmicpc.net 아이디어는 금방 생각 났고, 구현도 금방 했는데 디버깅이 겁나 오래걸렸다. 일단 문제를 잘못 본게 크다. x, y 증가량 즉 기울기가 무조건 양수인 줄 알았는데 아니였고 1 4 1234 이 경우에 xdist 0 ydist 1 일때 12 123 1234 다 조합에 들어가야 한다. 또 xdist, ydist가 전부 0 이라 무한루프 빠지는 것만 조심하면 된다. 지금 보니 굳이 int로 바꿔 ..

백준 1013 Contact c++
<algorithm>/백준 2023. 11. 28. 01:23

https://www.acmicpc.net/problem/1013 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 문제 이해하다가 탈모 올 뻔했다. 먼저 0이 연속으로 붙어서 올 경우는 첫 번째 100+1+ 뿐이다. 따라서 1. 0 연속인 부분 ex) 1100011 => 1 XXXXXX로 지워준다. 만약 1001처럼 마지막에 1이 한 개이면 x로 바꿔준다. 10010001 이런 경우에 에러 처리 해야 하기 때문 2. 나머지 남은 부분 01 지워준다. 3. 전체 string 순회하면서 1이나 0 남아..

백준 12891 DNA 비밀번호 c++
<algorithm>/백준 2023. 11. 28. 01:15

https://www.acmicpc.net/problem/12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net acgt배열을 unordered_map으로 만들어 두었으면 더 가독성 좋았을듯. 당시엔 생각이 안났다 // DNA 비밀번호 #include #include #include #include #include using namespace std; vector acgt(4, 0), cur_acgt(4, 0); void addChar(char obj) { switch (obj) { ..