프로그래머스 lv 2
1. 멀쩡한 사각형
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
typedef long double ld;
long long solution(int w,int h) {
if(w < h) swap(w, h); // w가 더 크게.
ll answer = (ll)w * h;
for(ll i = 1; i<=h; i++){
answer -= (ll)ceil((ld)w * i/h) - (ll)floor((ld)w * (i-1)/h);
}
return answer;
}
ceil과 floor 함수로 x좌표가 1일 때, 2일 때, ... 로 계산한 것이다. 다만 유의할 점은 수의 범위가 크기 때문에 나눗셈 오차를 줄이기 위해 나누기 연산을 뒤에 해야 한다는 것이었다.
2. 단체사진 찍기
순열(next_permutation 함수), string index와 vector에서 find함수를 이용해 푸는 구현 문제였다.
3. 행렬 테두리 회전하기
구현이 귀찮은 문제였다. 특히 잘못했던 것 : r, c로 계산하다가 변수이름을 x, y로 적었는데,
row, col(행렬)로 생각하면 row는 세로줄, col이 가로줄. 그러나 x, y(좌표평면)으로 생각하면 x는 가로줄, y가 세로줄이다. 그래서 헷갈렸다. 앞으로 행렬은 행렬대로 네이밍을 하자...
4. 카카오프렌즈 컬러링북
DFS로 하면 경로를 찾지 못할 수도 있으니, BFS로 진행한다. 작성하면서 DFS, BFS의 수도코드 자체를 잊어먹은 것 같아서 정리할 필요성을 느꼈다. 이제 좀 익숙해지고 있다.
'PS > PS Log' 카테고리의 다른 글
22.04.08. 풀었던 문제들 (0) | 2022.06.23 |
---|---|
22.04.07. 풀었던 문제들 (0) | 2022.06.23 |
22.04.05. 풀었던 문제들 (0) | 2022.06.22 |
22.04.04 풀었던 문제들 (0) | 2022.06.22 |
22.04.02. 풀었던 문제들 (0) | 2022.06.22 |