주어진 그림이 몇 개의 영역으로 나눠져 있으며 제일 넓은 부분은 어디인지 구하는 문제 문제의 조건 1. 그림의 세로 m, 가로 n, m x n 2차원 배열 picture가 주어짐 2. 주어진 그림에서 상하좌우 방향으로 연속한 숫자들만 같은 영역으로 침 -> BFS로 연속한 같은 숫자끼리의 넓이를 구하자 3. 영역이 몇 개인지, 그 중 가장 넓은 영역 크기는 몇인지 구하기 4. 전역변수는 solution 함수 안에서 초기화 해 주어야 함 #include #include #include using namespace std; int dir[4][2]; vector Pixels(pair curPos, int m, int n) { vector pixels; for (int i = 0; 4 > i; i++) { p..
10진법을 124 나라의 진법 방식으로 바꾸면 무슨 숫자가 되는지 구하는 문제 친절하게 힌트 알려주신 분 보고 풀었습니다 ㅠ.ㅠ 난 언제쯤 힌트 없이... 문제의 조건 1. 124 나라는 1, 2, 4 만 사용한다. (0도 안 씀) 2. 주어지는 10진법 정수 n을 124 나라 스타일로 바꾸면 뭔지 리턴하기 #include #include using namespace std; string Tri(int n) { if (0 >= n) return ""; string tri = ""; int remainder; if (0 == n % 3) { //3으로 나누어 떨어질 때 나머지가 0이지만 //124 나라에선 4가 되어야 함 //3으로 나누어 떨어지면 몫을 1낮추고 나머지는 4로 저장 remainder = 4..
프로도의 비상금 위치를 알기 위해서... 비밀지도의 암호를 푸는 문제 문제의 조건 1. 정사각형 지도의 한 변의 길이 n, 지도 1의 암호 배열 arr1, 지도 2의 암호 배열 arr2가 주어짐 2. 각 지도 배열에는 n개의 정수가 들어있는데 암호화된 숫자임 저걸 2진수로 바꿔야 진짜 지도 그림을 알 수 있음 arr1[i]의 원소 하나를 2진수로 바꾸면 00101과 같은 숫자를 얻을 수 있는데 0은 빈 공간(" ")이고 1은 벽("#")이다. 3. 지도 2개를 합쳐야 진짜 보물지도를 얻을 수 있는데 두개를 합쳤을 때 하나라도 1이면 벽("#")이고 둘 다 0이면 빈 공간(" ")이다. 4. 비밀지도를 해독해서 " # #" 등과 같은 문자열 형식으로 배열에 저장한 후 리턴 #include #include ..
요금 계산 방식이 약간 양아치인 놀이기구를 N번 타려면 가진 돈이 얼마나 모자라는지 구하는 문제 문제의 조건 1. 놀이기구를 한 번 타는데 필요한 비용 price, 내가 가진 돈 money, 내가 타고 싶은 횟수 count가 매개변수로 주어짐 2. 이 놀이기구는 인기가 많아서 N번 탈 때마다 N배 요금을 부과하기로 함 3. 이 때 count만큼 타고 싶은데 내가 가진 돈은 얼마나 모자랄까를 구해서 리턴 단 돈이 모자라지 않거나 딱 맞게 있으면 0 리턴(테스트 케이스 4번) using namespace std; long long solution(int price, int money, int count) { long long sum = 0; for (int i = 1; count >= i; i++) sum ..
학생들의 학점을 매기는 문제 문제의 조건 1. 학생들의 평가 점수를 담은 1차원 배열 scores가 주어진다. 2. 배열의 행(가로축)에는 열(세로축) 순서로 나열된 학생들이 가로축에 나열된 학생들을 상대로 한 평가임 3. 즉 한 학생의 평가점수는 열(세로축) 라인으로 나열되어 있는 점수들임 4. 평가점수 중에 유일한 최고점 혹은 최저점이면서 자기 자신이 평가한 점수면 평균을 낼 때 제외함 5. 이 때 각 학생들의 평균을 등급을 매겨서 string으로 합쳐서 리턴하기 #include #include #include using namespace std; string Evaluate(float score) { if (90 i; i++) { for (int j = 0; scores.size() > j; j++..
개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직군을 추천해주는 문제 문제의 조건 1. 직군 이름과 직군별로 많이 사용하는 언어 top5가 담긴 배열 table이 주어진다. (총 사이즈 6 = 직군 이름 1개 + 언어 5개) 순위가 높을수록 점수가 높다. 따라서 맨 앞에 있는 언어는 5점, 맨 뒤에 있는 언어는 1점임 -> 인덱스 번호에 따른 점수 계산을 쉽게 하기 위해 언어가 저장된 순서를 뒤집어줘야 함 2. 개발자가 사용하는 언어를 담은 배열 languages가 주어짐 언어는 1개 ~ 9개까지 들어있을 수 있다. 3. 언어별 선호도를 담은 배열 preference가 주어짐 languages 배열에 저장된 언어 순서대로 개발자가 선호하는 점수가 담긴 배열임 languages와 1:1 대응된..
복서들을 정해진 규칙대로 정렬하는 문제 문제의 조건 1. 복서들의 몸무게 배열 weights와 경기 전적을 나타낸 배열 head2head가 매개변수로 주어짐 2. 선수들은 주어진 몸무게 배열에 들어있는 순서대로 1번, 2번, ... 번호를 가지고 있다. -> 선수의 번호를 구하려면 몸무게 배열 인덱스+1 해주어야 함 3. 복서 정렬 조건 1) 승률이 높은 복서가 앞에 온다. -> 내림차순 2) 승률이 같다면 자기보다 몸무게가 무거운 복서를 이긴 횟수가 많은 복서가 앞에 온다. -> 내림차순 3) 2)에서 자기보다 무거운 복서를 이긴 횟수도 같으면 몸무게가 더 무거운 복서가 앞에 온다. -> 내림차순 4) 3)에서 몸무게도 같으면 번호가 빠른 사람이 앞에 온다. -> 오름차순 => 위의 조건대로 compa..
2016년의 a월 b일은 무슨 요일인지 구하는 문제 문제의 조건 1. 월 a, 일 b 가 매개변수로 주어진다. 2. 2016년 1월 1일은 금요일이다. 3. 이 때 2016년 a월 b일은 무슨 요일인지 구하기 #include #include using namespace std; string solution(int a, int b) { //1/1이 금요일부터 시작하는데 1%7=1 이다. //따라서 b%7=0 일 땐 목요일이다. //그래서 목요일을 인덱스 0번으로 두고 시작 vector week({"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"}); vector daysInMonth({31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31})..
- Total
- Today
- Yesterday
- 깊이우선탐색
- 캐나다
- greedy
- 영어공부
- 컴퓨터공부
- 너비우선탐색
- 컴퓨터
- c언어
- 스위프트플레이그라운드
- 문제풀이
- 알고리즘
- C언어기초
- 프로그래머스
- 다이나믹프로그래밍
- dp
- 하드웨어
- BFS
- 기초
- 그리디
- DFS
- hackerrank
- 애플
- 컴퓨터사이언스
- 코딩공부
- 캐나다생활
- 프로그래밍
- 아이패드
- c++
- 해커랭크
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |