
문제의 조건 1. 절대값이 들은 배열 absolutes와 +,- 부호 표시가 들은 배열 signs가 주어진다. 2. 두 배열의 길이는 같으며 signs[0]이 true면 absolutes[0]은 양수, signs[0]이 false면 absolutes[0]은 음수이다. 3. 이 때 실제 정수들의 합을 구하라. #include #include using namespace std; int solution(vector absolutes, vector signs) { int answer = 0; for (int i = 0; absolutes.size() > i; i++) { //false일 경우에만 음수로 바꿔주고 양수는 그대로 더해주면 되기 때문에 false 조건만 확인하면 됨 if (false == signs..

처음에 쬐끔 돌아가는 바람에 시간을 썼던 문제지만 다행히 생각을 바꿔 쉽게 풀었습니다. 문제의 조건 1. 0 ~ 9 까지의 숫자가 담긴 배열이 주어진다. 2. 그 중에서 없는 숫자만 더한 합을 구하라. 만약 [0,1,2,3,5,6,7,8] 배열이 주어지면 4와 9가 없다. 4 + 9를 리턴하면 됨 3. 중복된 숫자가 들어있지는 않다. #include #include #include using namespace std; int solution(vector numbers) { int answer = 0; for (int i = 0; 10 > i; i++) { //0~9까지 가면서 numbers 배열에서 찾지 못한 숫자면 합계에 더하기 auto it = find(numbers.begin(), numbers.e..

2차원 배열에서 인형을 뽑아서 다른 바구니로 옮기는데 같은 인형이 2개 연속으로 쌓이면 터진다. 크레인의 모든 이동이 끝나고 난 후 바구니에서 인형이 몇 개 터졌는지 구하는 문제 문제의 조건 1. 5x5 ~ 30x30 이하의 2차원 배열과 크레인이 몇 번 줄에서 인형을 뽑았는지 그 순서를 담은 1차원 배열이 주어짐 2. 주어진 2차원 배열에는 인형의 위치를 표시한 숫자가 들어 있는데 0이면 해당 위치에는 인형이 없다는 뜻이고 1 이상 숫자는 인형이 들어있다는 뜻임 3. 같은 숫자끼리 같은 인형이라고 간주함 4. 크레인의 움직임을 담은 배열 원소의 크기는 1부터 시작함 -> 2차원 배열의 인덱스에 적용해서 비교하려면 (크레인의 움직임을 담은 배열) 원소에서 1을 빼줘야 함 쉬운 문제였는데 스택에 값이 없을..

숫자 배열이 주어지는데 숫자 키패드에서 어느쪽 엄지손가락을 써서 배열의 숫자들을 눌렀을까 알아맞히는 문제 문제의 조건 1. 엄지손가락만 사용한다. 2. 왼쪽 엄지손가락은 *에서 시작하고 오른쪽 엄지손가락은 #에서 시작한다. 3. 왼쪽 엄지손가락은 1, 4, 7을 누를 수 있고 오른쪽 엄지손가락은 3, 6, 9를 누를 수 있다. 4. 가운데 라인에 있는 숫자들은 현재 손가락이 있는 위치에서 더 가까운 위치에 있는 손가락이 누른다. -> 매번 숫자를 누를 때마다 손가락 위치를 저장해야 함 5. 거리 계산은 직선상으로만 하며 대각선으로는 하지 않음 -> 대각선 위치에 있으면 거리를 2라고 봄 6. 만약 양쪽 손가락 위치에서 눌러야 할 숫자까지 거리가 같으면 오른손잡이면 오른손으로 누르고 왼손잡이면 왼손으로 누..

탈탈 털린 넥슨 코테를 계기로... Hacker rank preparation kit의 day 하나씩 풀기로 했습니다. 일단 1주일 키트의 첫째날부터 시작 첫째날이라 다 쉽네용 문제의 조건 1. 12:23:43AM 식으로 12시간 포맷의 시간이 입력되는데 이것을 24시간 포맷으로 환산하면 몇 시로 표현할 수 있는지 string으로 만들어서 리턴하기 AM이면 11시까지는 그대로 쓰면 되는데 12시면 00으로 바꿔줘야 하고 PM이면 12시면 그대로 쓰면 되지만 12시 이전까지는 12를 더해줘야 합니다. string timeConversion(string s) { //오전인지 오후인지, 몇 시인지 구분하기 위해서 string 분리 string strHour = s.substr(0, 2); string strT..

쉬운 문제였는데 새로운 인덱스를 구할 때 계산을 조금 잘못해서 힌트가 필요했던 문제 문제의 조건 1. 주어진 배열의 원소들을 주어진 횟수만큼 시계 반대방향으로 회전 시키기 vector rotateLeft(int d, vector &arr) { int iSize = arr.size(); vector vecResult(iSize); for (int i = 0; iSize > i; i++) { //새로운 인덱스 위치를 구해서 넣어주는 것이 빠른데 //첫번째 인덱스 자리를 구한 다음 그 다음칸부터 차례대로 넣어준 후 나머지는 앞쪽에 배치하면 된다. //첫번째 인덱스 자리는 arr.size - d니까 (iSize - d + i)를 생각할 수 있다. //그런데 저렇게만 가면 0번째 인덱스에는 값이 안 들어감 -> ..

문제 읽고 뭐 이딴게 다 있나 싶었는데 Discussions 보니까 외국사람들도 똑같더라고요..ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 영어쓰는 사람들도 무슨 소린지 모르겠다고 할 정도였으니 전 더 못 알아먹는 것이 당연했슴 다 풀고나서 보니까 문제가 첨부터 시키는대로 하면 되긴 했습니다. 문제의 조건 0. 가로 길이는 3이고 세로 길이는 쿼리 수 만큼인 2차원 배열이 주어짐 각 배열의 가로줄에는 1 x y or 2 x y 형식으로 integer 데이터가 들어있음 1. 2차원 배열 하나를 주어지는 n 크기만큼 선언한다. 그리고 결과를 저장할 1차원 배열이 하나 더 필요하다. result 란 이름으로 하나 만들자. 2. LastAnswer라는 이름으로 integer 선언. 0으로 초기화한다. 3. 쿼리의 종류는 2가지가 있는데 ..
- Total
- Today
- Yesterday
- 하드웨어
- 프로그래머스
- 그리디
- C언어기초
- hackerrank
- c++
- 캐나다
- 컴퓨터공부
- BFS
- 컴퓨터
- greedy
- 문제풀이
- 해커랭크
- dp
- 코딩공부
- 깊이우선탐색
- 캐나다생활
- 영어공부
- 컴퓨터사이언스
- 백준
- 기초
- 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 | 29 | 30 |