목록SWEA (5)
최고를 향해 최선을 다하자
안녕? 나는 응애개발자 간단한 bfs문제였다. 시간 M당 포문을 돌려서 다음 파이프를 큐에 넣어 bfs 풀듯이 진행하면 ok 근데 아주 조오오오오오오금 까다롭다면 1. 1~7 파이프마다 갈 수 있는 방향을 체크해주고 2. 갈 수 있는 방향마다 갈수있는 파이프 또한 체크해주면 된다. 이게 그냥 귀찮았다. 음.. 증말 귀찮았다 코드리뷰 시작! #include #include #include using namespace std; int N,M,L; int map[50][50]; pair hole;//파이프의 위치를 담아논 pair int dy[4] = {0,0,-1,1};//0:좌 1:우 2:상 3:하 int dx[4] = {-1,1,0,0}; int dir[4];//파이프마다 갈수있는 방향의 정보를 담은 배..
안녕? 나는 응애개발자 이번 문제는 생각할게 많았던 시뮬레이션 문제였다. 어떻게 풀었냐면. 0. 일단 시간 M만큼 반목문을 돌려서 1. dq안에 있는 좌표를 pop_front()해서 해당방향에 따라 다음좌표로 pop_back(다음좌표, 군집 수 ,방향) 넣어줬고 2. 이 좌표들을 하나하나 살피면서 dq안의 모든 구조체를 pop_front()해서 비웠다. 2-1) 해당좌표에 미생물 군집이 없다면 그 좌표의 대표군집이 되고 2-2) 해당좌표에 미생물 군집이 있다면 비교하여 큰 군집으로 대표 군집이 바뀌게 되는것이다. 이렇게 맵을 업데이트 하고 3. 맵에 있는 군집과 방향으로 dq에 push_back(다음좌표, 군집 수 ,방향) 했다. 근데 문제가 있는것이라. 3개의 군집이 한번에 뭉칠때 대충 예를들어 (군집..
안녕? 나는 응애개발자 오늘은 좀 화가 나있다. 왜냐면.... 나는 맥을 이용하는데, 맥 터미널로 돌리면 잘만 나오는 결과가 SWEA에서 돌리기만 하면 이상한 것이다. 평소에 init_()이란 함수를 만들어 일일이 초기화를 했는데, 실패했다. 삽질하다가 memset을 이용했는데 성공적으로 잘만됐다. 화가 났다. 고작 초기화 때문에 30분을 삽질했다는 이 사실이!!! 한번에 통과할 수 있었는데 2번만에 통과한 이 사실이!!!!!!!!!!! 오늘 문제는 완탐(dfs)를 사용해서 풀면 되는 간단한 문제였다. 코드 리뷰, 시작! #include #include using namespace std; int N; int map[20][20]; int chk[20][20];//갔던곳은 안가기위한 배열 int dess..
안녕? 나는 응애개발자 문제를 보고 '아 뭐야? 어렵지 않아서 대-충 풀면 알아서 되겠네?' 싶어 문제도 대-충읽고 대-충 로직짜서 코딩해서 돌렸는데 틀린것이다;; 알고보니 문제를 대충읽어서 로직을 완전 반대로 짜버렸다ㅋㅋ (이걸로 한시간 삽질함) 문제를 완벽하게 이해하는건.. 중요하다는 것을 다시한번 느꼈다...큐ㅠㅠ 각설, 코드 리뷰 시작! 오늘의 코드는 더럽다. 어쩔수 없다 난 응애니까! #include #include #include #include using namespace std; int K; int magnet[4][8]; queue rotation; int mag_match[4][2] = {{-1,1},{0,2},{1,3},{2,-1}}; //2^n을 구하는 함수 int multi(int..
안녕? 나는 응애개발자 오늘은 SWEA의 2117번 문제를 풀었다. 사실 나는 디버그 할 때마다 로직 수정보다는 인덱스에서 시간을 참 많이 소모해버리는데... 오늘은 시간을 별로 안 써서 행복했다. 딱히 어려운 문제는 아니었지만 풀면서 'for문이 이렇게 들어가 버린다고? 이거 맞긴 해?' 하면서 풀었는데 맞다. SWEA은 엥스러운 문제를 잘 내는 것 같다. 각설, 코드 리뷰 가자 #include #include using namespace std; int N,M; int map[20][20]; int ans = 0; //현재 좌표가 맵 범위 밖이면 false, 안이면 true를 리턴한다 bool check(int y, int x){ if((y>=0) && (x>=0) && (x