분류 전체보기 239

비트 연산

비트연산 : 비트단위의 조작이 필요할 때 사용된다. 대표적으로 BitFlag가 있다. 비트연산의 종류 ~ (bitwise not ) : 모든 종류의 비트를 뒤집음 & (bitwise and) : 모든 비트 쌍을 대상으로 and 연산을 실행 | (bitwise or) : 모든 비트 쌍을 대상으로 or 연산을 실행 ^ (bitwise xor) : 모든 비트 쌍을 대상으로 xor 연산을 실행 -> xor 연산은 두 번 실행하면 원래의 숫자로 돌아오게 되어 암호학에서 쓰인다. 비트 우측 이동 : N만큼 우측으로 이동, 오른쪽에 넘치는 건 버린다. 이 연산은 부호비트가 있으면 부호비트는 따르고 나머지 새로운 비트를 0으로 만들고 unsigned 같은 타입의 부호비트가 없는 숫자면 맨 처음 비트도 0으로 만든다. ..

개발 지식 2023.07.28

프로그래머스 - 단어 변환 - C++

https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; int minA = 2100000000; string be; string tar; int check[51]; bool isChange(string word, string s) { int c = 0; for (int i = 0; i < s.length(); i++) { if (word[i] == s[i])c++; } return ..

프로그래머스 - 타겟 넘버 - C++

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; int cnt=0; void D(int target,vectornum,int n,int i) { if(i==num.size()) { if(n==target)cnt++; return; } D(target,num,n+num[i],i+1); D(target,num,n-num[i],i+1); } int solution(vector nu..

프로그래머스 - 이차원 배열 대각선 순회하기 - C++

https://school.programmers.co.kr/learn/courses/30/lessons/181829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include #include using namespace std; int solution(vector board, int k) { int answer=0; for(int i=0;i

프로그래머스 - 문자열 겹쳐쓰기 - C++

https://school.programmers.co.kr/learn/courses/30/lessons/181943 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; string solution(string my_string, string overwrite_string, int s) { string answer = ""; my_string.replace(s,overwrite_string.length(),overwrite_string); return my_string; } 설명 string...

프로그래머스 - 간단한 식 계산하기 - C++

https://programmers.co.kr/learn/challenges 코딩테스트 연습 | 프로그래머스 스쿨 개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요! school.programmers.co.kr #include #include using namespace std; int solution(string b) { int answer = 0; int a,bc; char op; int s = b.find(' '); a = stoi(b.substr(0, s)); op = b[s+1]; bc= stoi(b.substr(s+3)); if(op=='*')return a*bc; else if(op..

프로그래머스 - 배열의 원소 삭제하기 - C++

https://school.programmers.co.kr/learn/courses/30/lessons/181844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include #include using namespace std; vector solution(vector arr, vector delete_list) { vector answer; for(int i=0;i

코드 디버깅(debugging)

디버깅은 코드를 파악하거나 오류를 해결하기 위해 반드시 필요한 도구이다. 디버깅은 프로그램을 실행할 때 원하는 부분의 코드를 하나씩 보며 그 상황에서의 흐름에 따른 변수의 값 등을 파악할 수 있어서 오류를 파악하는데 아주 유용하게 사용된다. 하지만 처음 코딩을 접하면 문법부터 배우게 되며 디버깅에 대한 중요성을 강조하지는 않는다. 그래서 오류가 발생하면 코드를 한줄씩 따라가며 머릿속으로 계산하거나 종이에 적으며 오류를 찾아내려는 노력을 한다. 하지만 이러한 방법들은 코드가 조금만 복잡해져도 금세 한계를 드러낸다. 따라서 간단하지만 중요한 디버깅 사용법을 소개하려 한다. *Visual Studio debug를 기준으로 작성* 중단점 BreakPoint (단축키 F9) - 디버그를 실행하면 설정한 중단점에서..

개발 지식 2023.07.19