dfs를 통해서 순서대로 하나씩 만들어준후 주어진 word와 비교하여 맞다면 그때의 번호를 answer로 리턴하는 코드이다.
좌표를 구하는 방법은 문제 아래에 참고 공식을 사용하면 된다. 그래프의 좌표와 vector에 넣는 좌표가 다른것을 주의해야하며, 좌표이동을 해줄때 주의해주어야하는 문제이다. 또한 공식을 사용한 계산과정에서 long long 범위가 되는 연산이 존재한다. 이때문에 시간이
Subject 링크허용함수정리 링크\-Wall -Wextra -Werror -pthreaddata race를 보고싶다면 -fsanitize=thread -g를 추가프로세스 내부에 있는 CPU 수행 단위를 의미한다.프로세스는 운영체제로 부터 할당받는 작업의 단위이고, 쓰
n의 범위가 10^7까지 여서 직접 2차원 배열을 만들어 잘라붙이는 방식으로 구현한다면 시간초과가 발생한다. 때문에 범위 내에서 조건에 맞추어 값을 넣어주면 되는 문제이다.위 풀이를 좀더 간결하게 하면 다음과 같다.
처음에 소수를 판별하는 부분을 에라토스테네스의 체로 구현하였는데 판별해야하는 수가 long long 범위의 수일 수도 있기때문에 각 수에대해 판별을 따로 해주어야한다. 이를 주의한다면 크게 어렵지는 않은 문제이다.
주차비용을 계산할 때 분단위 요금이기 때문에 주어지는 사용시간을 분단위로 환산해서 계산하면 편하다. 크게 어렵지는 않지만 시간계산 문제여서 조금 까다로울 수 있다.
dfs로 탐색조건을 잘주어서 풀어 시간초과에 유의하면 되는 문제이다. 점수차이가 같을때 가장 낮은 점수를 많이 쏜 경우를 구해야한다는 점을 생각안하다가 문제를 푸는데 시간을 많이 들였다...
처음에는 굳이 queue를 사용안하고 벡터로 erase를 해가며 큐처럼 활용하였지만 시간초과가 되어서 queue를 활용하여 풀었다.핵심은 1번 큐를 기준으로 평균값보다 크면 값을 보내고, 작으면 가져온다는 점이다. 언제까지 반복할지에 대한 범위설정도 필요한데 처음에는a
주어진 카드 목록들을 서로 연결된 목록들로 묶었을 때 가장 큰묶음 두개의 곱을 반환해주면 되는 문제이다. 문제의 설명이 길어서 이해하기 조금 힘들 수 있지만 예시를 잘 생각해보면 금방 이해할 수 있다.
단순히 수열의 숫자를 하나하나 더해줘도 되긴하지만 미리 연속합을 구해놓고 사용하여 최적화 하였다.
단순히 3명의 번호를 골라서 합이 0인지 확인해주면 되는 문제이다. 주어지는 number의 길이가 13까지밖에 안되서 삼중 for문을 돌려도 무관해보인다.
스위프트의 접근제어는 모듈과 소스파일을 기반으로 설계되었다.모듈(Module)은 배포할 코드의 묶음 단위이다. 통상 하나의 프레임워크(Framework)나 라이브러리(Library) 또는 애플리케이션(Application)이 모듈 단위가 될 수 있다. 스위프트에서는 i
처음에는 string.compare(idx, comp.size(), comp)을 통해서 비교할까 했는데 좀 햇갈려서 다음과 같은 코드로 풀었다.
시간초과때문에 고생을 많이 한 문제이다. 첫풀이와 두번째 풀이를 합치고 최적화하여 통과하였다.첫번째 풀이는 인덱스를 주어진 벡터에 추가해주고 정렬한다음에 각 사람에 대해 인센티브 여부를 체크해 조건이 안된다면 점수를 -1로 변환하여 마지막에 몇등인지를 세주는 방식이었다
deque로 구현해서 조건에 맞다면 빼나가는 방식으로 구현을 했다가 시간초과가 떠서 바꾼 코드이다. 방식을 알면 상당히 쉽지만 난이도에 비해 생각하기 좀 어려웠던 문제이다.