대딩192 비트 연산_AND 연산/OR 연산/ XOR 연산/ NOT 연산 / Shift 연산 / 비트의 특정 인덱스 추출(업데이트) 비트 연산 0과 1로 이루어진 이진수의 비트 별 연산 AND 연산(&) 두 비트가 모두 1일 때만 1인 연산 0 0 1 1 0 1 0 1 -------- 0 0 0 1 OR 연산(|) 두 비트 중 하나라도 1이면 1인 연산 0 0 1 1 0 1 0 1 -------- 0 1 1 1 XOR 연산(^) 두 비트가 다르면 1인 연산 1 1 0 1 0 1 0 1 -------- 1 0 0 0 NOT 연산(~) 0을 1로, 1을 0으로 변환하는 연산 0 1 0 1 -------- 1 0 1 0 Shift 연산 - Left shift: 비트들을 왼쪽으로 k칸씩 옮기고 남는 자리에 0을 채우는 연산 (x > k) 1 0 0 1 > 2 --------------- 1 0 특정 인덱스의 값을 추출하는 법 num = 12.. 2022. 4. 3. [프로그래머스 lv2] 양궁대회 풀이 해설 중복 조합(순서를 고려하지 않고 중복을 허용하여 선택하는 방법)을 통해 0부터 10까지의 과녁 중 n발을 선택한다. n번의 점수를 모두 고른 뒤 각 점수의 개수를 카운트하여 라이언 배열을 생성한다. 라이언과 어피치의 점수를 각각 합산했을 때 라이언이 이긴 경우, 점수 차의 최댓값을 갱신하며 라이언 벡터를 저장한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X f.. 2022. 3. 24. [프로그래머스 lv2] 주차요금계산 풀이 해설 주어진 문자열들에서 시각, 차량번호, 입출차 여부를 파싱한다. 입차일 때는 입차시각을 기록해 두고, 출차할 때마다 출차시각에서 최근의 입차시각을 빼 시간을 더해간다. 입차시각만 주어지고 출차시각은 주어지지 않은 케이스는 마지막에 23시 59분까지의 시간을 추가한다. N을 K로 나누어 올림한 결과는 (N+K-1)/K 이므로 이를 이용해 총 요금을 계산하여 요금 배열을 리턴한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; usi.. 2022. 3. 24. [프로그래머스 lv2] k진수에서 소수 개수 구하기 풀이 해설 문제의 요지는 0으로 둘러쌓인 숫자 중 소수인 수를 카운트 하라는 것이다. 수 n을 k진수로 변환하여 문자열로 저장한다. '0'이 나올 때까지 수를 계산하여 tmp에 저장하고, '0'이 나오면, 지금까지 계산해놓은 수가 소수인지 판단하여 카운트를 1 증가 시킨다. 문자열이 끝날 때까지 해당 작업을 반복한 후 카운트를 리턴하면 된다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii =.. 2022. 3. 22. [프로그래머스 lv2] n진수 게임 풀이 해설 수들을 n진수로 변환하여 모든 자리를 문자열로 결합한다. 튜브에게 t번 순서가 돌아온다고 할 때, 튜브는 전체 문자열에서 p, p+m, p+2m, ... , p+(t-1)*m 인덱스에 있는 문자를 말하게 된다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X first #define Y second char conv[16] = {'0', '1', '.. 2022. 3. 22. [프로그래머스 lv2] [3차]파일명 정렬 풀이 해설 파일명에서 head와 number를 파싱한 후, 배열에 튜플로 저장한다. head와 number를 우선순위로 하여 정렬 후 파일명만 추출하여 리턴한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; using sii = tuple; #define X first #define Y second vector solution(vector files) { v.. 2022. 3. 22. [프로그래머스 lv2] [3차]압축 풀이 해설 문제의 의미를 파악하는데 꽤 시간이 걸리는 문제이다. 현재 입력과 일치하는 가장 긴 문자열을 찾으라는 것은, 현재 문자열의 0번째 인덱스부터 특정 인덱스까지가 사전에 있는지 확인하고, 사전에 있는 문자열 중 가장 긴 것을 택하라는 의미이다. 예를 들어 HELLOWORLD라는 문자열이 주어진다면, HELLOWORLD, HELLOWORL, HELLOWOR, HELLOWO, ... , H까지의 문자열 중 사전에 있는 가장 긴 문자열을 찾으라는 것이다. 문자열을 찾은 뒤에는 문제에서 주어진 대로 사전의 색인번호를 결과 벡터에 추가한다. 이후 w+c 단어를 사전에 등록한 뒤, 현재의 문자열에서 사전에 있는 단어를 제거하면 된다. 전체 코드 #include #include #include #include #i.. 2022. 3. 21. [프로그래머스 lv2] 방금그곡 풀이 해설 musicinfos에 입력된 각 문자열을 파싱하여 벡터에 저장한다. 각 음악마다 총 재생시간을 계산하고, 총 재생시간 동안 플레이된 전체 악보를 구한다. 재생된 전체 음악에 m(들은 부분)과 일치하는 부분이 있으면 결과 벡터에 저장한다. 결과 벡터를 우선순위 대로 정렬하여 가장 우선순위가 높은 음악의 제목을 리턴한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; using iis.. 2022. 3. 21. [프로그래머스 lv1] [1차]다트게임 풀이 해설 인덱스를 고려할 필요 없이 문자열의 원소만 판단하여 각 로직을 처리할 수 있다. 원소가 S, D, T가 들어온 경우, 그동안 계산해놓은 점수에 제곱(세제곱)을 하여 배열에 추가한다. 옵셥 *가 들어온 경우, 가장 최근의 두 원소에 2배를, 옵션 #가 들어온 경우 가장 최근의 원소에 -1배를 계산한다. 마지막으로 배열의 모든 원소의 합을 리턴한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = .. 2022. 3. 21. [프로그래머스 lv1] [1차]비밀지도 풀이 해설 벡터의 각 요소들은 한 행에 대한 정보를 포함하고 있으므로, 이를 분해하여 0인지 1인지 파악한다. 두 지도에 있는 요소들의 비트 연산 값을 통해 둘 중 하나라도 1이면 '#'을, 아니면 ' '을 연결한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X first #define Y second vector solution(int n, vector .. 2022. 3. 20. 이전 1 ··· 10 11 12 13 14 15 16 ··· 20 다음