전체 글
-
BOJ 16946번: 벽 부수고 이동하기 4알고리즘 2024. 1. 9. 11:18
#BOJ 16946번: 벽 부수고 이동하기 4 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 www.acmicpc.net #풀이 맨 처음에는 n 과m이 1000 이하여서 그냥 bfs로 풀면 되겠다 하고 풀었는데 시간초과가 나왔다... 아직도 시간을 생각못하니... 바보같다 그래서 생각해보니 1에서 bfs를 돌리면 중복되는 부분들이 생긴다는 것을 알고 0을 시작점으로 bfs를 돌아 시작점을 기점으로 그룹핑을 지어 반복되는 부분을 지울 수 있었다. #코드 #include #include using namespace st..
-
새해 근황 일지곰들의 운동일지(양프) 2024. 1. 8. 23:28
안녕하세요. 벌써 새해가 왔어요. 저는 본가에 내려갔었죠~~ 이제 ktx 타는 것도 힘들어요 정말... 자리도 없구 누나가 일본갔다가 가져온 빵인데 뭐랄까 카라멜? 시나몬? 이런 맛의 달달한 빵이었어요!! 음 정말 맛있었어요 화순에 있는 고인돌 공원에 갔어요! 가서 고인돌 많이 봤는데 바람이 너무 많이 불어서 추웠어요. 그리고 호수도 있었어요 멍 때리기 좋은 곳이라 들었어요 ㅋㅋㅋ 저는 올라오는 기차에서 해를 봤습니다 다들 해돋이는 잘 갔다 오셨나요~~?? 새해도 건강하고 행복했으면 좋겠습니다 그럼 이만~~ ㅏㅃ빠이
-
BOJ 16939번: 2 x 2 x 2 큐브알고리즘 2024. 1. 8. 23:16
#BOJ 16939번: 2 x 2 x 2 큐브 16939번: 2×2×2 큐브 첫째 줄에 2×2×2 루빅스 큐브 각 면의 각 칸 색상이 주어진다. 색상은 1부터 6까지의 자연수로 나타내며, 각 자연수는 총 4번 등장한다. i번째 수가 의미하는 칸은 아래와 같다. www.acmicpc.net #풀이 음 간단한 구현문제이다. 큐브를 한번 만 돌리므로 진짜로 큐브를 생각하면 구현하기 쉽다. 내가 실수 한 부분은 큐브를 돌릴 때 움직이지 않는 면들이 있는데 그 면들이 색깔이 같다고 가정을 해서 틀렸다. 항상 조건을 꼼꼼하게 생각해야하는데.. 그게 참 어렵다... #코드 #include using namespace std; int cube[25]; //내가 바라보는 면 5,6,7,8 bool func1() {//1..
-
BOJ 1005번: ACM Craft알고리즘 2024. 1. 8. 23:13
#BOJ 1005번: ACM Craft 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net #풀이 위상 정렬을 사용하면 간단하게 해결할 수 있다. #코드 #include #include #include #include using namespace std; int n; int t; int w; int k; vector degree; vector adj; vector buildingT; vector ansbuildingT; int topologicalsort() { queue q; for (int i = 1; ..
-
BOJ 19700 : 수업알고리즘 2024. 1. 8. 23:11
#BOJ 19700 : 수업 19700번: 수업 키가 188cm, 154cm인 학생들을 한 팀으로, 키가 180cm, 161cm인 학생들을 한 팀으로, 키가 172cm인 학생을 혼자 팀으로 묶으면 총 3개의 팀을 구성할 수 있다. 더 적은 갯수의 팀으로 학생들을 묶을 수 있 www.acmicpc.net #풀이 multiset을 이용하여 multiset의 메소드인 lower_bound 를 사용하여 해결할 수 있다. 키와 k를 받지만 사실 키는 신경쓰지 않아도 된다. 그 이유는 키가 큰 순서대로 정렬하여 각 팀에 있는 인원 수 가 k보다 작은 곳에 들어가야하므로 k만 생각하고 풀면 된다. multiset을 사용하여 팀의 각 몇명있는지 확인하여 k보다 작은 팀중에서 가장 많은 수의 팀원이 있는 팀을 들어가야한..
-
Softeer - [HSAT 7회 정기 코딩 인증평가 기출] 순서대로 방문하기알고리즘 2024. 1. 3. 10:42
#Softeer - [HSAT 7회 정기 코딩 인증평가 기출] 순서대로 방문하기 Softeer - 현대자동차그룹 SW인재확보플랫폼 Sam은 팀장님으로부터 차량이 이동 가능한 시나리오의 수를 찾으라는 업무 지시를 받았습니다. 이동은 숫자 0과 1로만 이루어져 있는 n x n 크기의 격자 위에서 일어납니다. 숫자 0은 빈 칸을 의미 softeer.ai #풀이 보자마자 dfs로 경우의 수를 찾아 해결하면 된다. 기본 dfs,bfs문제이다. #코드 #include #include using namespace std; int dx[4] = {1,0,-1,0}; int dy[4] = {0,1,0,-1}; int n; int m; int board[5][5]; int vis[5][5]; int ans; vectorv..
-
Softeer - [HSAT 7회 정기 코딩 인증평가 기출] 자동차 테스트알고리즘 2024. 1. 3. 10:31
#Softeer - [HSAT 7회 정기 코딩 인증평가 기출] 자동차 테스트 Softeer - 현대자동차그룹 SW인재확보플랫폼 * 1 ≤ n ≤ 50,000 * 1 ≤ q ≤ 200,000 * 1 ≤ 자동차의 연비 ≤ 1,000,000,000 * 1 ≤ mi ≤ 1,000,000,000 (i는 1 이상 q 이하입니다. 즉, mi 는 각 질의에 대응하는 중앙값을 의미합니다.) softeer.ai #풀이 n개의 자동차 연비들 중에서 3개를 골라 q의 중앙값이 될 수 있는 경우의 수를 구하는 문제이다. 이분탐색을 사용하면 엄청 간단하게 해결할 수 있다. 먼저 n개의 자동차 연비를 저장하고 정렬을 한다. 이분탐색은 정렬이 되어 있어야 사용가능하다. lower_bound를 사용하여 q의 값이 배열에 몇번째인덱스에..
-
Softeer - 성적평균알고리즘 2024. 1. 3. 10:21
#Softeer - 성적평균 Softeer - 현대자동차그룹 SW인재확보플랫폼 N명의 학생들의 성적이 학번순서대로 주어졌다. 학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라. softeer.ai #코드 #include #include using namespace std; int main(int argc, char** argv) { int n, k, s; vector v; cin >> n >> k; for(int i = 0; i > s; v.push_back(s); } for(int i = 0; i > a>> b; double sum = 0; int count = b - a + 1; for(..