![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b2laG8/btrilUWUUim/e2QPNEG4XytMh22DGwinl1/img.png)
ATM이 한 대 밖에 없는 은행에서 N명의 사람들이 차례대로 줄을 서서 돈을 뽑을 때, 모든 사람들이 돈을 뽑는데 걸리는 시간의 최솟값을 구하는 문제 문제의 조건 1. 돈을 뽑으려는 사람들의 수 N, N명의 사람들이 각각 돈을 뽑는데 걸리는 시간을 나타낸 배열이 주어짐 (둘째 줄에 주어지는 것이라 실제로는 반복문 돌리면서 배열에 값 입력받기) 2. 사람들이 각각 걸리는 시간은 다 다른데 사람들이 뽑는 순서에 따라 최종적으로 걸리는 시간의 합계가 달라진다. 3. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/UNO20/btrio2lNV1M/tTtFvFper1d7Uh6L7ggKf0/img.png)
상근이가 최소로 옮기면 되는 설탕 봉지가 몇 봉지인지 구하는 문제 문제의 조건 1. 상근이는 설탕을 정확하게 N kg을 배달해야 한다. 2. 하지만 상근이는 좀 귀찮아서 최대한 적은 봉지를 배달하고 싶다. 3. 상근이가 배달할 수 있는 설탕 봉지의 무게는 3kg과 5kg 짜리 두 가지가 있다. 4. 두 종류의 설탕 봉지들만 사용해서 가장 적게 가져갈 수 있는 봉지가 몇 봉지인지 구하기 5. 만약 정확하게 N kg을 배달할 수 없으면 -1을 리턴한다. 풀이 과정 1. 상근이는 최대한 적은 봉지를 배달하고 싶기 때문에 5kg 짜리를 최대한 많이 쓰는 것이 이득이다. 2. 그렇기 때문에 먼저 5kg 짜리로 N kg을 나눠본 후 0으로 나눠 떨어지면 그 몫이 정답이다. 3. 하지만 2번에서 나눠 떨어지지 않는다..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bhG2se/btrigrUxovA/hznp0KQBPw9BRAukUpaOb1/img.png)
권투 선수들의 승패에 따른 순위를 매겨야 하는데 몇몇 경기 결과는 분실되었다. 경기 결과를 확실하게 알 수 있는 선수들만이라도 추려보려고 하는데 순위를 정확하게 매길 수 있는 선수가 몇 명인지 구하는 문제 문제의 조건 1. 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 주어짐 2. results 배열의 각 행 [A, B]는 A 선수가 B 선수를 이겼다는 뜻이다. 3. 모든 경기 결과에는 모순이 없다. 아직 그래프에는 많이 약하기 때문에 힌트를 봤는데 플로이드-와샬 알고리즘을 이용하면 쉽게 풀린다고 해서 무엇인지 찾아보았습니다. 플로이드-와샬 알고리즘 최단 거리를 구하는 그래프 알고리즘 중 하나 모든 쌍을 표현하는 행렬(2차원 배열)을 이용해서 다이나믹 프로그래밍 방식으로 각 정점간의 최단..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Q0vNQ/btrh9RyLKbo/DE3M9aXrK5k8RCvCukzp4k/img.png)
캐릭터가 상대방 진영까지 가는데 걸리는 최단거리를 구하는 문제 제목 보고 그래프 문제인 줄 알고 시작했는데 알고보니 bfs 문제였다. 하지만 아직 bfs도 숙련되지 못했기 때문에 푸는데 오래 걸렸다... 문제의 조건 1. 게임 맵에서 벽과 길을 표시한 2차원 배열 maps가 주어짐 2. maps에서 0은 벽이라서 지나갈 수 없고 1은 길이라서 지나갈 수 있다. 3. 캐릭터의 초기 위치는 항상 [0,0] 이고 상대방 진영 위치는 항상 맵의 우측 하단이다. 즉 상대방 진영 위치는 n x m 크기를 가진 maps 배열 상에서 [n-1, m-1] 이다. 풀이 과정 1. bfs로 이동할 수 있는 다음 칸을 탐색하면서 다음 칸까지의 최단 거리를 계산한다. => bfs로 이동할 다음 칸을 저장할 queue 필요 qu..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bu9Jy8/btrh0Dge3Ok/3ljcG8xlhDZVJIkcgPnaGk/img.png)
신입사원 네오의 업무를 도와주기 위해 새로운 카카오 아이디를 만드려는 고객들이 규정에 맞지 않는 아이디를 입력한다면 규정에 맞는 새로운 아이디를 추천해주는 프로그램을 개발해야 하는 문제 문제의 조건 1. 고객이 입력한 아이디를 담은 string 배열 new_id가 주어짐 2. 아이디 변환 규칙 위 순서대로 차례차례 구현만 하면 된다. #include #include #include using namespace std; string solution(string new_id) { string answer = new_id; int stage = 1; //5단계부터는 new_id가 빈 문자열이 될 수도 있기 때문에 처음 4단계까지만 반복문 속에서 반복 while (4 >= stage) { for (int i =..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c0LaH4/btrhXFZmqT8/Pydk5SfTDjKJQyRkcwt8AK/img.png)
민우가 샀던 로또에 동생이 낙서를 하는 바람에 번호 몇 개를 알아보지 못 하게 되었는데... 민우는 로또 당첨번호 발표가 끝나고 난 후 자기가 샀던 로또가 최고 몇 등까지 당첨될 수 있는지 궁금해졌다. 저 같으면 어떻게든 번호를 복구했을 거 같은데 민우는 그냥 포기했나 봅니다. 민우가 산 로또의 최고 순위와 최저 순위를 알아보는 문제 문제의 조건 1. 민우의 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 주어진다. 2. 동생이 낙서해서 알아보지 못 하는 번호는 0으로 표시되어 있다. 3. 0들이 만약 로또 당첨 번호와 일치하면 민우가 얻을 수 있었던 최고 순위이고 일치하지 않으면 민우가 얻을 수 있었던 최저 순위이다. 4. [최고 순위, 최저 순위] 순서로 배열에 담아서 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uNanp/btrhTtlABJ6/EUDbxKaXs4Z411o1PPKcS1/img.png)
2021.10.10 - [코딩 공부/C 언어] - [C언어 기초] if ~ else와 else if [C언어 기초] if ~ else와 else if 2021.10.05 - [코딩 공부/C 언어] - [C언어 기초] 조건문 if [C언어 기초] 조건문 if 2021.04.16 - [코딩 공부/C 언어] - C 언어 기초 : 연산자 3 - 비트 연산자 C 언어 기초 : 연산자 3 - 비트 연산자 2021.04.14.. hgu-can.tistory.com 2021.10.05 - [코딩 공부/C 언어] - [C언어 기초] 조건문 if [C언어 기초] 조건문 if 2021.04.16 - [코딩 공부/C 언어] - C 언어 기초 : 연산자 3 - 비트 연산자 C 언어 기초 : 연산자 3 - 비트 연산자 2021...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dyBuoH/btrhS4MUwxX/zrKTv4AmjLoZJf2cDWTCU1/img.png)
하드디스크의 작업 처리 시간의 평균을 구하는 문제 문제의 조건 1. 작업 처리 시작 시간과 소요 시간이 담긴 2차원 배열 jobs가 주어짐 2. 하드디스크는 기본적으로 먼저 들어온 순서대로 처리를 하는데 만약 현재 처리중인 작업이 끝나지 않았는데 새로운 처리 요청이 2개 이상 들어오면 그 중 작업 소요 시간이 짧은 순서대로 처리한다. => 우선순위 큐에 현재 작업시간보다 짧거나 같은 작업들을 저장하는데 작업의 소요시간이 짧은 순서로 정렬해서 저장해야 함 (여기서 함수 사용법을 몰라서 아주 많이 헤멤...) 3. 모든 작업이 끝나서 쉬는 상태라면 남은 작업들 중 가장 먼저 들어온 것부터 처리한다. 2, 3번 과정을 반복해서 총 작업 소요 시간을 구한 뒤 작업의 갯수로 나눠서 평균 구하면 되는데 총 작업 소..
- Total
- Today
- Yesterday
- hackerrank
- C언어기초
- 캐나다
- greedy
- 다이나믹프로그래밍
- BFS
- 문제풀이
- dp
- 스위프트플레이그라운드
- c언어
- 영어공부
- 아이패드
- c++
- 캐나다생활
- 프로그래밍
- 코딩공부
- DFS
- 백준
- 프로그래머스
- 너비우선탐색
- 애플
- 컴퓨터사이언스
- 알고리즘
- 그리디
- 하드웨어
- 컴퓨터
- 깊이우선탐색
- 컴퓨터공부
- 해커랭크
- 기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |