분류 전체보기
-
[프로그래머스/SQL] 헤비 유저가 소유한 장소 (MySQL)알고리즘 문제풀이/프로그래머스 2021. 10. 7. 14:09
https://programmers.co.kr/learn/courses/30/lessons/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 해커랭크의 SQL 문제는 어렵던데,,, 이건 너무 쉬워서 당황했다. 다음 데브매칭에도 이렇게 쉽게 나오면 좋겠다. 일단 헤비 유저인 HOST_ID를 먼저 구해야하기 때문에 아래와 같이 코드를 작성했다. SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_I..
-
[프로그래머스/위클리 챌린지] 6주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 10. 6. 15:49
https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 어렵지않은 구현 + 정렬 문제였다. 주의할 점은 복싱 시합 결과가 'N'일 때는 전체 경기 횟수로 포함되지 않는다는 점, 그리고 나누는 수가 0이될 때 따로 예외처리를 해줘야하는 점이다. #include #include #include using namespace std; struct Boxer { int num, ..
-
[백준/BOJ] 2615번 오목 (C++)알고리즘 문제풀이/백준 2021. 10. 5. 17:58
https://www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 그렇게 어렵지 않는 구현 문제였다. 주의할 점이 하나 있는데 오목인지 확인할 때, 다음과 같이 4방향으로 고려해야한다. 4방향인데, 각각 2번씩 탐색을 하는 것이다. 이렇게 해서 오목이 되는지 확인하면 된다. #include #include #include #include using namespace std; int map[20][20], win; int dx[2][4] = { {-1, -1, -..
-
[백준/BOJ] 1063번 킹 (C++)알고리즘 문제풀이/백준 2021. 10. 1. 16:55
https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 크게 어렵지 않은 구현 문제이다. 다만 주의할 점이 있는데, 첫 번째는 예를들어 좌표가 A1이면 해당 좌표는 맨 왼쪽 아래를 의미한다. 이를 90도 방향으로 회전하면 배열처럼 사용할 수 있는데, 이렇게 하면 킹이 움직이는 방향도 90도 방향으로 회전해서 생각해줘야 한다. 그리고 두 번째는 좌표가 문자로 되어있기 때문에 이동 처리를 할 때는 숫자로 바꿔주고 마지막에 출력할 때는 다시 문자로 바꿔줘야 한다. #..
-
[백준/BOJ] 8979번 올림픽 (C++)알고리즘 문제풀이/백준 2021. 9. 30. 01:22
https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 각각의 메달의 수가 같은 경우 등수 처리를 잘해줘야 하는 문제이다. 예를들어 입력이 다음과 같다면, 등수는 다음과 같이 된다. 4 3 1 1 2 0 -> 1 2 0 1 0 -> 2 3 0 1 0 -> 2 4 0 0 1 -> 4 나는 각각의 메달의 개수를 문자열로 변환하고, 이것을 map의 key로 사용하였다. 해당 문자열을 key로 했을 때 value가 0이라면 유일한 순위이..
-
[백준/BOJ] 2563번 색종이 (C++)알고리즘 문제풀이/백준 2021. 9. 26. 18:09
https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 색종이를 붙인 위치 x, y ~ x + 10, y + 10 영역을 2차원 배열의 좌표로 1로 만들어준다. 이 1의 개수가 전체 영역의 넓이라고 할 수 있다. 이때 중복되는 영역은 한번만 셀 수 있도록 현재 2차원 배열 좌표의 값이 1일땐 continue 처리 해준다. #include #include using namespace std; int N, answer; int map[101][101]; in..
-
[백준/BOJ] 1822번 차집합 (C++)알고리즘 문제풀이/백준 2021. 9. 26. 17:33
https://www.acmicpc.net/problem/1822 1822번: 차집합 첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소 www.acmicpc.net 이분 탐색을 이용하면 시간복잡도 O(N * logN)으로 해결할 수 있다. 다만 주의할 점은 a 집합에서 교집합 원소를 제거하는 방식으로 문제를 접근하면 원소의 재배치 과정 때문에 TLE이 발생할 수 있다. 그러므로, 이분 탐색을 통해 찾을 수 없는 원소인 경우에 새로운 벡터에 값을 넣는 방식으로 해결하면 된다. #include #include #include ..
-
[백준/BOJ] 6581번 HTML (C++)알고리즘 문제풀이/백준 2021. 9. 25. 22:56
https://www.acmicpc.net/problem/6581 6581번: HTML 원래의 HTML 문서가 입력으로 주어진다. 이 텍스트는 단어와 HTML 태그들로 이루어져 있으며, 태그는 한 개 이상의 공백문자나 탭, 개행 문자 등으로 구분된다. 단어는 연속된 알파벳, 숫자, 또는 www.acmicpc.net #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); string str = ""; string bar = "--------------------------------------------------------------------------------"; int line_..