python

백준 2/시뮬레이션

[백준 3190] 뱀 (C++/Python)

1. 조건 1) 벽 또는 자기자신과 부딪히면 끝남 2) 매 초마다 아래 규칙으로 이동함 (1) 머리를 다음 칸에 위치시킴 (2) 벽이나 자기자신과 부딪히면 끝 (3) 이동한 칸에 사과가 있다면, 칸에 있던 사과는 없어지고 꼬리 안 움직임 (4) 이동한 칸에 사과가 없다면, 꼬리 줄어듦 2. 뱀 방향 전환 int dx[4] = {1,0,-1,0}; int dy[4] = {0,1,0,-1}; // 0,1,2,3 일 때 현재 방향 (dir) L D 0 1 3 1 2 0 2 3 1 3 0 2 L이나 D 방향전환을 해야한다면 다음 dir은 표에 있는 숫자가 된다. 다른 방법은 생각이 안 나서 이렇게 풀었다. C++) #include #include #include #include #include #include ..

백준 2/완전탐색

[백준 18808] 스티커 붙이기 (C++/Python)

알고리즘은 문제에서 주어진 그대로이다. 1. 스티커를 떼어낸다. 2. 부착시켜보고 안 되면 회전시킨다. 3. 90 ~ 270도까지 회전 시켜보고 안 되면 버린다. 이를 토대로 구현하면 되는데 문제에서 주어진 설명을 예시로 들어 내가 삽질했던 부분을 설명하자면 첫번째 스티커를 붙인 이후 노트북은 아래와 같고 (좌표 써져있는 부분이 스티커) (0,0) (0,2) (1,0) (1,1) (1,2) (2,0) (2,2) 두번째 스티커를 한 번 회전시킨 모양을 좌표로 나타내면 (0,0) (0,1) (1,1) (2,1) (3,0) (3,1) (4,1) 이와 같다. 이 때 나는 arr[x][y] == 0인 경우에만 스티커를 붙일 수 있는지 검사했는데, 이렇게 되면 arr[0][3] 일 때 CanPutSticker 메서..

백준 2/완전탐색

[백준 15683] 감시 (C++/Python)

1. 입력 - 세로 : N - 가로 : M - 사무실 각 칸의 정보 2. 출력 - 사각지대(CCTV가 감시할 수 없는 영역)의 최소 크기 출력 3. 조건 - 시간 : 1초 - 메모리 : 512mb - CCTV 종류 : 총 5종류 - 1번 : 한쪽 - 2번 : 두 방향 / 서로 반대방향 감시 가능 - 3번 : 두 방향 / 직각 방향 - 4번 : 세 방향 - 5번 : 네 방향 -> 모든 칸 감시 가능 - CCTV 벽 통과 못 함 - CCTV는 서로 통과할 수 있음 ★★★ - CCTV 회전시킬 수 있음 - 회전은 항상 90도 방향 - 감시하려고 하는 방향이 가로 또는 세로 방향이어야 함 - 0 : 빈 칸 - 1~5 : CCTV 번호 - 6 : 벽 4. 반례 1 7 0 3 0 0 3 0 0 // 0 5. 알고리..

백준 1/수학

[백준 2903] 중앙 이동 알고리즘

정사각형 갯수 : 4 (n=1, 2^2)→ 16(n=2, 4^2) → 64(n=3, 8^2) → ... → 1024 (n=5, 32*2) - n이 1개씩 증가할 때마다 2^n개로 늘어남 점 갯수 : 9(n=1, 3^2) → 25(n=2, 5*2) → ... → ... → 1089 (n=5, 33^2) - n이 1개씩 증가할 때마다 정사각형 (x+1)^2개인걸 알 수 있음 C++) #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; cout

프로그래머스/Level2

[Level2] 택배상자 (C++/Python)

C++) #include #include #include using namespace std; int solution(vector order) { int answer = 0; int cur = 1;// 컨테이너 벨트에 있는 택배번호 bool isEnd = true; stack sub; for(auto num : order){ isEnd = true; // 컨테이너 벨트 택배번호 보조벨트에 넣음 while(cur 택배상자 싣기 if(sub.top() == num) { answer++; sub.pop(); isEnd = false; } // 더이상 넣을게 없음 if(isEnd) break; } return answer; } Python) def solution(order): sub = [] answer = ..

프로그래머스/Level2

[Level2] 캐시 (C++/Python)

C++) #include #include #include #include using namespace std; int solution(int cacheSize, vector cities) { vector v; int answer = 0; if (cacheSize == 0) return cities.size() * 5; for(auto city : cities) { transform(city.begin(), city.end(), city.begin(), ::tolower); auto iter = find(v.begin(), v.end(), city); // miss if(iter == v.end()) { answer += 5; // 캐쉬가 다 찼으면 제일 오랫동안 안 쓴거 지우기 if(v.size() ==..

백준 2/백트래킹

[백준 15666] N과 M (12) (C++/Python)

- N과 M (1) : 중복 수열 X / 숫자 중복 X - N과 M (2) : 중복 수열 X / 숫자 중복 X / 오름차순 - N과 M (3) : 중복 수열 X / 숫자 중복 O - N과 M (4) : 중복 수열 X / 숫자 중복 O / 비내림차순 ~~아래부터는 사용자로부터 직접 입력받음~~ - N과 M (5) : 중복 수열 X / 사전 증가순 - N과 M (6) : 중복 수열 X / 사전 증가순 / 오름차순 - N과 M (7) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O - N과 M (8) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O / 비내림차순 - N과 M (9) : 중복 수열 X / 사전 증가 순 / 주어진 숫자가 중복 일 수 있음 - N과 M (10) : 중복 수열 X ..

백준 2/백트래킹

[백준 15665] N과 M (11) (C++/Python)

- N과 M (1) : 중복 수열 X / 숫자 중복 X - N과 M (2) : 중복 수열 X / 숫자 중복 X / 오름차순 - N과 M (3) : 중복 수열 X / 숫자 중복 O - N과 M (4) : 중복 수열 X / 숫자 중복 O / 비내림차순 ~~아래부터는 사용자로부터 직접 입력받음~~ - N과 M (5) : 중복 수열 X / 사전 증가순 - N과 M (6) : 중복 수열 X / 사전 증가순 / 오름차순 - N과 M (7) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O - N과 M (8) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O / 비내림차순 - N과 M (9) : 중복 수열 X / 사전 증가 순 / 주어진 숫자가 중복 일 수 있음 - N과 M (10) : 중복 수열 X ..

백준 2/백트래킹

[백준 15664] N과 M (10) (C++/Python)

- N과 M (1) : 중복 수열 X / 숫자 중복 X - N과 M (2) : 중복 수열 X / 숫자 중복 X / 오름차순 - N과 M (3) : 중복 수열 X / 숫자 중복 O - N과 M (4) : 중복 수열 X / 숫자 중복 O / 비내림차순 ~~아래부터는 사용자로부터 직접 입력받음~~ - N과 M (5) : 중복 수열 X / 사전 증가순 - N과 M (6) : 중복 수열 X / 사전 증가순 / 오름차순 - N과 M (7) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O - N과 M (8) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O / 비내림차순 - N과 M (9) : 중복 수열 X / 사전 증가 순 / 주어진 숫자가 중복 일 수 있음 - N과 M (10) : 중복 수열 X ..

백준 2/백트래킹

[백준 15663] N과 M (9) (C++/Python)

- N과 M (1) : 중복 수열 X / 숫자 중복 X - N과 M (2) : 중복 수열 X / 숫자 중복 X / 오름차순 - N과 M (3) : 중복 수열 X / 숫자 중복 O - N과 M (4) : 중복 수열 X / 숫자 중복 O / 비내림차순 ~~아래부터는 사용자로부터 직접 입력받음~~ - N과 M (5) : 중복 수열 X / 사전 증가순 - N과 M (6) : 중복 수열 X / 사전 증가순 / 오름차순 - N과 M (7) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O - N과 M (8) : 중복 수열 X / 사전 증가순 / 같은 수 여러번 O / 비내림차순 - N과 M (9) : 중복 수열 X / 사전 증가 순 / 주어진 숫자가 중복 일 수 있음 C++) #include #include..

핑구ovo
'python' 태그의 글 목록