전체 글

·Algorithm
문제 두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs의 각 문자들의 순서를 잘 바꾸면 succor이 되기 때문이다. 한 편, dared와 bread는 서로 애너그램 관계에 있지 않다. 하지만 dared에서 맨 앞의 d를 제거하고, bread에서 제일 앞의 b를 제거하면, ared와 read라는 서로 애너그램 관계에 있는 단어가 남게 된다. 두 개의 영어 단어가 주어졌을 때, 두 단어가 서로 애너그램 관계에 있도록 만들기 위해서 제거해야 하는 최소 개수의 문자 수를 구하는 프로그램을 작성하시오. 문자를 제거할 때에는 아무 위치에 있는 문자든지..
·Algorithm
문제 C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C 표준 라이브러리는 문자열을 다루는 데에 매우 유용한 함수들을 제공하고 있다 : 그들 중에는 strcpy, strcmp, strtol, strtok, strlen, strcat 가 있다. 하지만, 잘 알려져 있지 않으며, 잘 사용되지도 않는 함수가 하나 있다 : strfry 함수다. strfry 함수는 입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만들어낸다. (역자 주 : 여기에서 입력된 문자열과 새로 재배열된 문자열이 다를 필요..
·Algorithm
문제 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000) 출력 문제의 조건을 만족하는 쌍의 개수를 출력한다. 예제 코드 #include using namespace std; int n, a[100000], x, tmp[1000001], ans = 0; int main(void) {..
·Algorithm
문제 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다. 다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) 입력 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 필요한 세트의 개수를 출력한다. 예제 코드 #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); // tmp는 6과 9..
·백준 C++
문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. 예제 코드 #include using namespace std; // int freq[26]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); string s; int freq[26] = { 0 }; cin >> s; /* for (int i = 0; i < s.length(); i++) { freq[s[i] - 'a']++;..
·Algorithm
0x02강 - 기초 코드 작성 요령 2 - STL 함수 인자 - 기초적인 내용을 확인해보자. 위 코드들은 각각 함수 인자로 int, int 배열, 구조체를 보내 값을 바꿨을 때 원본의 값이 바뀌는 지를 확인하는 코드이다. 첫 번째 코드처럼 int를 함수 인자로 보내면 원본이 아니라 복사된 값이 보내진다. 때문에 함수에서 값을 바꾸더라도 main의 변수 t에는 아무런 영향을 주지 않는다. 두 번째로 int 배열인 arr를 보내는 것은 함수 인자로 arr의 주소를 넘기는 것이다. 따라서 func 함수에서 arr[0] 값을 바꾸면 원본에서도 자연스럽게 바뀌게 된다. 마지막으로 구조체 tmp는 int 변수와 마찬가지로 값이 다 복사되기 때문에 원본이 영향을 받지 않는다. 두 변수의 값을 바꿔주는 swap 함수를..
·백준 C++
문제 두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오. 입력 두 정수 A와 B가 주어진다. 출력 첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다. 둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다. 서브태스크 예제 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); long long a, b; cin >> a >> b; if (a > b) swap(a, b); if (a == b) cout
·Algorithm
0x00강 - 오리엔테이션 - 코딩 테스트에 대한 정보 - 코드의 채점을 진행하는 입력 데이터를 테스트 케이스, TC라고 부른다. 테스트 케이스는 적어도 30개에서 50개는 있어야 한다. 코딩 테스트는 코드가 모든 테스트 케이스를 통과했을 때만 문제를 맞혔다고 처리한다. - 환경 세팅 - Visual Studio 2017/2019는 기본적으로 msvc 컴파일러를 사용하지만 거의 모든 채점 서버는 gcc 컴파일러를 사용한다. msvc에서는 못쓰는데 gcc에서는 할 수 있는 기능이 일부 있다. 예를 들어, msvc에서는 배열을 선언할 때 그 크기로 변수를 이용할 수 없는데, gcc에서는 가능하다(VLA, 가변 길이 배열). 강의 내에서는 msvc, gcc에서 모두 잘 실행되는 코드로 설명한다. bits 폴더..
·ETC
네이버 클라우드에서 3달 동안 파트타이머로 근무하는 동안 하고 보고 느꼈던 점들을 정리하려고 한다! 인턴도 아니고 PT였을 뿐이지만 네이버 클라우드에 지원서를 보낸 건 2022년에 내가 한 일 중 가장가장가장 잘한 일이다 글을 쓰면서 너무 정들었던 네클을 보내주려고 하니 벌써 마음이 아픈..ㅜㅜ😂😂😂 처음에 학교 커뮤니티에서 구인 공고 글을 보고 바로 지원을 결심하게 되었다. 마침 내가 하고 싶은 공부를 찾기 위해서 휴학을 결심하고 있었고, 전에 일하던 음식점도 가게를 이전하느라 알바를 쉬게 되었기 때문이다. 문제는 제출해야 하는 이력서가 자유 양식이었다는 건데...ㅜ 따놓은 자격증도 없고 지금까지 했던 알바는 클라우드랑 저언혀 상관도 없어서 당연히 붙기가 어려울 거라고 생각했다. 아무리 생각해봐도 어필..
수달토끼
수달토끼의 개발일기