단순히 타겟 문자가 keymapi 과 같은때 전체 keymap 자판에서 j+1 값이 가장 작은것을 채택하여 타겟문자열을 완성하는데 필요한 값들의 합을 구해주면된다.
처음에는 스택에 넣어서 비교를 할까 생각했는데 그냥 인덱스를 늘려가는 방식으로 접근해도 쉽게 구현할 수 있을거 같아서 다음과 같이 구현하였다.
index만큼 숫자를 밀때 skip에 포함되어 있는 문자이면 index로 생각하지 않는 문제이다.예시로 s = "a", skip = "b", index = 3 이면 결과값이 'e' 가 된다. 중간에 변화한 문자('b')가 skip에 한번 포함되기 때문
내장 함수를 사용하지않아서 직접 구현을 한 부분 들이 있다. 이미 구현된 함수를 알고 사용했다면 시간을 훨씬 단축할 수 있었을것 같다.int main(){}
mbti유형을 정립하는 문제라 생각하면 이해하기 쉽다. 문제자체는 크게 어렵지 않은 문제였다.
신고한 사람들을 신고받은 사람의 벡터에 넣어주었고 그 숫자가 k를 넘게된다면 answer[신고한 사람 인덱스]++ 을 해주었다. 문제를 잘못 이해해서 푸는데 좀 애를 많이 먹은 문제이다.
단순히 왼쪽 좌표는 최소 x,y값, 오른쪽 좌표는 최대 x+1, y+1 값을 찾으면 된다.
1 ≤ p의 길이 ≤ 18p의 길이 ≤ t의 길이 ≤ 10,000t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.p 와 t에서 p의 길이만큼 자른 부분 문자열을 숫자로 변환하면 최대 18자릿수 까지 나오기 때문에int 말고 long long 으로 해주
단순히 좌표를 이동시켜주면서 벽을만나거나 공원을 벗어나지 않는 명령만 수행해주는 문제이다. 그렇게 어렵지 않은 문제이다.
string에서 해당 글자가 이전에 나온적 있다면 그 거리를 answer에 넣어주면 되고 없으면 -1 을 넣어주면 되는 문제이다. 알파벳이 나오면 인덱스를 갱신해주면 된다.
해시 자료구조를 사용하면 정말 간단하게 풀 수 있는 문제이다.더간단한 풀이도 존재한다.unordered_set을 사용한 방법이다.
map 자료구조를 이용하면 상당히 쉽다. 이 문제에서 주의해야할점은 동명이인의 존재이다. set으로 구현하면 동명이인을 처리하지 못한다.
스택과 같은 구조를 사용하면 쉽게 풀수있다. 본인은 deque를 이용해 연속해서 들어오면 deque에 넣지않고 나중에 빼낼때는 들어온 순서대로 빼내었다.
map을 사용하면 쉽게 풀 수 있는 문제이다.
첫번째 풀이는 벡터에서 직접 iter를 확인하면서 옮겨주었는데 시간초과가 난 풀이이다. > iterator를 활용하여 벡터에서 iter_swap을 사용하는 방법도 사용하여 보았지만 시간초과가 났다. 결과적으로 map을 사용해야하는 문제였는데 등수, 선수이름 과 선수이
간단한 정렬 문제이다.
i번째 인덱스에는 가로세로중 큰값, i번째 인덱스에는 가로세로중 작은값으로 변경하여 저장하여준다음각각 열중 가장 큰값들의 곱을 리턴해 주면 되는 간단한 문제이다.
각 사람이 문제를 얼마나 맞췄는지 하나하나 확인해주고 오름차순으로 많이 맞춘사람을 리턴해주면 된다.
간단히 체육복 개수를 체크해주고 체육복이 없다면 양옆을 확인해서 가져와 주면 된다. 학생수가 2-30명이어서 배열을 32의 크기로 고정해서 양옆 배열이 존재하는지의 체크를 하지않고 코드를 짜도 괜찮을것 같아보인다.
첫 문자와 다른 문자의 개수를 유의해주면서 풀면되는 간단한 문제이다.
k명 만큼 계속 정렬해주다가 넘치면 지워주고 가장 작은 값을 결과벡터에 넣어주면 되는 간단한 문제이다.
약수의 개수를 구해서 limit보다 크면 power로 더해주면 되는 문제이다.시간초과를 유의하면서 풀어야하는 문제이다.
묶음에서 가장 낮은 점수를 기준으로 판매가격이 정해지므로 각 묶음마다 최소값을 최대한 크게끔 하면된다. 즉 내림차순으로 정렬한뒤 해당 개수 만큼 판매하면 된다는 의미이다.
간단하게 2개 이상이때만 해당 음식을 세팅하면 된다.
3진법으로 변환하는 과정에서 변환되어진 수가 정수형들의 범위보다 클수있어서 문자열 그대로 다시 변환해주어야한다.
deque로 구현해서 조건에 맞다면 빼나가는 방식으로 구현을 했다가 시간초과가 떠서 바꾼 코드이다. 방식을 알면 상당히 쉽지만 난이도에 비해 생각하기 좀 어려웠던 문제이다.
처음에는 string.compare(idx, comp.size(), comp)을 통해서 비교할까 했는데 좀 햇갈려서 다음과 같은 코드로 풀었다.
단순히 마신만큼 다시 새거로 받아오는 반복문을 짜도 되지만 최대한 최적화해서 풀어봤다.
단순히 3명의 번호를 골라서 합이 0인지 확인해주면 되는 문제이다. 주어지는 number의 길이가 13까지밖에 안되서 삼중 for문을 돌려도 무관해보인다.
공통된 숫자를 사용해서 가장 큰 숫자를 만들어 주면 되는 문제이다.
단순히 나머지가 1인 최소 자연수값을 리턴해주면 되는 문제이다.
간단히 1~9까지의 합인 45에서 주어지는 숫자들을 빼주면 되는 문제이다.
1+2+...+n 에 대한 공식을 사용하여 풀면되는 문제이다. 주의할점은 총가격을 구할 때 int범위를 넘어갈 수 있으므로 1LL을 곱해준다.
어렵지 않은 단순한 문제이다. 영단어로 된 숫자를 정수형 숫자로 바꾸어서 결과를 리턴해주면 된다.다른 사람의 풀이중에 신기한 풀이도 참조한다.
문제풀이의 핵심적인 요소는 약수의 개수를 구하는 부분이다. 간단한 문제이다.
로또번호에서 지워진 숫자를 생각하며 나올 수 있는 최저, 최고 등수를 구해 리턴하면 되는 간단한 문제이다.
단순히 절대값의 값을 주어진 부호에 따라 총합을 리턴해주면되는 간단한 문제이다.
주어진 조건에 맞춰서 아이디를 변형해주면 되는 문제이다. string 함수를 더 잘쓰면 간결히 할 수 있는 문제이다.다음은 더 간결히 구현한 코드이다
단순히 주어진 설명대로 하면 되는 아주 간단한 문제이다.
중간 키패드일때 주의해야하는 문제이다. 크게 어렵지는 않지만 생각보다 까다로울 수 있다.
말그대로 주어진 배열에서 인형을 뽑아 스텍에 넣어주며 같은 인형이 연속으로 쌓이면 없애주면서 answer += 2를 해주어 리턴하면 되는 문제이다. 간단한 문제이다.
현재 스테이지에 도달했지만 클리어 못한 수 / 스테이지 도달한 수 를 잘계산해주어서 풀면되는 문제이다. 스테이지를 도달한 수는 이전 스테이지들에 도달한 수를전체에서 빼주면 된다.
주어지는 조건에 맞게 점수를 계산해주면 되는 간단한 문제이다. sstream을 사용해서 인덱스를 생각하지 않고도 풀 수 있지만 해당 풀이는 인덱스를 사용하여 풀었다.
주어진 숫자 배열들을 이진수로 변환후 0 은 ' ', 1은 'void decodeNum(int n, vector& map, vector& arr) { for (int i=0; i<n; i++) { string decoded = bitset<
단순히 예산범위 내에서 최대 지원 가능한 수를 구하면 되는 간단한 문제이다.
에라토스테네스의 체를 사용하여 소수를 구하고 하면 되는 문제이다. 크게 어렵지 않다.
표준입력을 받는 간단한 문제이다.
주어진 숫자 x부터 같은 간격으로 n개를 담아 리턴해주면 되는 문제이다. 간단한 문제이다.
제목 그대로 행렬의 덧셈을 반환해주면 되는 간단한 문제이다.
단순히 뒤의 4자리 빼고 다 \*로 바꿔주면 되는 문제이다.
문제에서 요구하는 조건에 맞춰 풀면 되는 간단한 문제이다.
말 그대로 평균을 구해서 리턴해주면 되는 문제이다. 어렵지 않은 문제이다.
콜라츠 추측이라는 것을 직접 확인하는 문제이다. 주어진 조건에 맞춰 코드를 짜면 되는데 주의해야 할 점은 int형에서 오버플로우가 나는 경우에 대해 고려해주어야 한다는 점이다.
제목 그대로 구하면 되는 문제이다.
간단한 문제이다.
주어진 벡터에서 가장 작은수만 제거해서 반환해주면 되는 문제이다. 비어있다면 -1을 넣어서 반환.
제곱근이라면 +1한값의 제곱을 반환해주는 문제이다. 아니라면 -1 반환
사용되는 함수들만 알고있다면 간단한 문제이다.
뒤집어서 백터배열에 하나씩 담아 반환하면 되는 문제이다.
정수의 각 자릿수 값들을 더해줘서 반환하는 문제이다.
sstream을 사용하여 풀다가 애를 먹었는데, 그냥 for문을 하는 편이 예외처리도 쉽고 편하다.
약수의 합을 구하면 되는 간단한 문제이다.
시저암호를 사용해 주어진 문자열을 변환해서 리턴해주면 되는 문제이다. 주의할 점은 공백은 안밀린다는 점과, 대소문자 각각 돌아간다는 점이다.
stoi와 같은 문자열 정수 변환 함수를 알고 있다면 쉽게 풀 수 있는 문제이다.
홀짝인지 따라서 수인지 박인지 체크해 리턴해주면 되는 문제이다.
에라토스테네스의 체를 사용하여 소수를 구해 풀면 간단한 문제이다.
몇번째 배열에 있는지 찾으면 되는 간단한 문제이다.
주어진 문제 조건에 맞추면 되는 간단한 문제이다.
내림차순 정렬하면 되는 간단한 문제이다.
p와 y 개수에 따른 결과를 리턴해주면 되는 문제이다. 간단하다.
문제에서 주어진 조건대로 idx번째의 문자를 기준으로 오름차순 정렬하면 된다. 같다면 사전순.
두정수 a ~ b 사이의 모든 정수를 합한 값을 리턴해주면 되는 문제이다. 이는 평균값 \* 정수의 개수로 구할 수 있다.
제목 그대로 주어진 숫자 배열에서 주어진 divisor로 나누어지면 정답배열에 넣고 오름차순으로 정렬해서 리턴해 주면 되는 문제이다.
짝수 홀수 일때의 조건에 맞춰 가운데 글자를 리턴해주면된다.
윤년은 2월이 29일이 되는 해이다. 주어지는 a월 b일이 무슨요일인지 반환해주면 되는 문제이다.