본문 바로가기

구현14

[구현 / c++] 하루 중 3 이 하나라도 들어간 모든 시각의 경우의 수 자리수 별 가능한 숫자의 경우의 수를 곱하고 더하여 답을 찾으려 하였으나 생각보다 복잡해서 오류가 나고 문제 푸는데 시간을 초과하였다. 결국 하루는 86400 초이므로 생각보다 문제의 가능한 최대 경우의 수가 적으니 완전 탐색이 더 잘맞고 간단하게 코드를 짤 수 있는 문제였다 #include using namespace std; // 각 시각의 숫자를 모두 체크하는 것은 따로 함수를 만들어 구현하는 것이 편하다 // 각 시각의 자리수마다 3이 하나라도 있는지를 or로 체크하자 bool check(int i, int j, int k){ if(i%10==3 || j%10==3 || j/10==3 || k%10==3 || k/10==3){ return true; } return false; } int main.. 2022. 6. 21.
[구현 / c++] 상하 좌우 이동 이동할 dx, dy를 움직임을 표현할 기호 LRUD와 인덱스를 같게 해주어서 4방향이니 4가지 인덱스 중 입력한 LRUD와 인덱스가 같을때 이동하도록 코드를 짠 점 그리고 예외 사항인 맵 밖을 벗어났을때는 움직이지 않도록 하기 위해, 이동이 적용된 예상 좌표를 구하고 수정 후 좌표가 맵 범위 밖일때, continue하여 갱신하지 않고, 범이 밖이 아닌 경우에만 좌표를 갱신하도록 한 점이 포인트였다 여러번 반복해서 풀어보고 익숙해지자 #include using namespace std; int n; // 이동할 맵 범위로 쓸 n 입력 string plans; int x=1, y=1; // 시작 위치 초기화 // L R U D 에 따른 이동방향 int dx[4]={0,0,-1,1}; // 오른쪽 아래로 향하.. 2022. 6. 21.