본문 바로가기

알고리즘31

[BOJ] 15683. 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 배운점 : barking dog 님의 풀이(4진법으로 풀기)는 굉장히 아름다운 풀이였다. 스스로 풀었는데, 난 백트래킹이라고 생각하는데 pruning이 없어서 그냥 완전탐색이다. 근데 난 머리속에 이 그림을 상상하며 풀었다. 이걸 손으로 구현하면 풀리겠다고 생각했다. 1. std::copy로 배열복사하는법 배웠다. (지정한 배열사이즈만큼 복사해야한다) int board_copy[10][.. 2021. 8. 31.
[BOJ] 16926. 배열돌리기 1 https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 배운점 : 규칙적으로 돌리면 코드가 더 깔끔해진다. ^^ ( ​ 죄송합니다.. 설명하려고 그림 그렸는데 다 푼 문제에 똥을 뿌려버렸네요 ​ 그.. 삽입정렬 아시죠? 2,3,4,5 에서 배열을 추가하지 않고 옮기려면 어떻게 했나요? ​ X 2 3 4 5 맨 뒤에 1칸을 더 할당해서 맨 오른쪽부터 왼쪽으로 .. 2021. 8. 30.
[Programmers] 2021 카카오 인턴십 2번 - 거리두기 확인하기 https://programmers.co.kr/learn/courses/30/lessons/81302?language=cpp 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 처음에 풀었을때 방향이 너무 많아서 이게 뭐지? 싶었는데.. 침착하.. 2021. 8. 25.
[일상]소프트웨어마에스트로 코딩테스트 1차 후기 https://www.swmaestro.org/sw/main/main.do SW마에스트로 NEWS 제12기 온라인 과정설명회 Q&A 지원 자격 Q. 지원 서류 제출 기간에는 4대 보험에 가입되어 있는데 지원해도 되나요? 지원서 제출 기간에는 4대 보험 가입 여부와 관계 없이 지원하실 수 있 www.swmaestro.org 지원 동기 : ​ 지원할까말까 굉장히 많이 고민을 했다.. 날짜는 한달전부터 이미 알고 있었지만 자소서항목에 하나도 적을게 없어가지고.. 내가 하고싶은건 있는데 그 분야는 아예 몰라서(인공지능) 망설였다. 지금 학부수업으로는 배우고 있지만, 학부수업에서 교수님을 많이 괴롭혀서 얻어가야겠지만 갈 길이 멀다. ​ 지원하는 마지막 날짜까지도 자소서를 쓸지말지 고민을 많이 했다. 자신감도 많이.. 2021. 3. 5.
[BOJ] 2573 빙산 www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net #include #include typedef long long ll; using namespace std; int board[305][305]; int board2[305][305]; bool visited[305][305]; int mx[4] = {0,0,1,-1}; //동 서 남 북 int my[4] = {1,-1,0,0}; int year; int solve(int n,int m) { int tx,.. 2021. 2. 23.
[SWEA] 9700. USB 꽂기의 미스터리 (문제 꼼꼼히 읽어야하는 이유) swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AXDNEA3aaU0DFAVX&categoryId=AXDNEA3aaU0DFAVX&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com #include #include typedef long long ll; using namespace std; int main(void) .. 2021. 2. 20.
[SWEA] 10726. 이진수 표현 (비트마스크),연산자 우선순위 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXRSXf_a9qsDFAXS SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com #include typedef long long ll; using namespace std; int main(void) { int size; ll n,m,t,t2; scanf("%d",&size); for(int i = 0; i < size; i++) { scanf("%lld %lld",&n,&m); t = (1 2021. 2. 17.
[SWEA] 10570. 제곱 팰린드롬 수 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXO72aaqPrcDFAXS SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com #include #include typedef long long ll; using namespace std; int check_pal(int num)//맞으면 1, 아니면 0리턴 { if( num / 10 == 0) return 1; else if(num / 10 < 10) { if(num % 10 == num / 10) return 1; }else{ if(num / 100 == num % 10) .. 2021. 2. 16.
[SWEA] 11387. 몬스터 사냥 (float대신 double을 써야하는 이유) https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AXb6LR76vCcDFARR&categoryId=AXb6LR76vCcDFARR&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com =====속도가 느린버전======= #include int main(void) { int size; double sum,.. 2021. 2. 15.
[BOJ] 2839. 설탕배달 #include #include #include #define MAX 10000001 typedef long long ll; using namespace std; int main(void) { int num; int sum = 0; int cnt; scanf("%d",&num); cnt = num / 5; if(num % 5 != 0) { for(int i = cnt; i >= cnt; i--)//500원을 많이 쓸 수록 좋음 { if( (num-5*i) % 3 == 0) { sum += i + (num- 5*i) / 3; break; } } }else{ printf("%d\n",num/5); return 0; } /* if(sum) printf("%d\n",sum); else printf("-1\n").. 2021. 2. 10.
728x90