분류 전체보기
-
[따배씨++] 변수, 상수, 전처리기 등 정리Study/C & C++ 2022. 9. 16. 18:35
C++ 기초를 다시 한 번 빠르게 복습할 겸 [홍정모의 따라하며 배우는 C++] 를 다시 보기로 했다. 초반 내용 정리. 01. 변수 변수 객체를 사용하기 위한 메모리의 주소값을 표현한 것... (일반적인 "변할 수 있는 수" 도 말이 된다. CS적으로 생각해보면 메모리의 주소 표현이 좀 더 맞는 말인듯) L-Valule와 R-Value 나중에 더 심도있게 글을 쓸 예정이지만, L-Value는 변수나 상수 형태로 프로그래머가 메모리에 접근할 수 있는 값, R-Value는 일반적인 방식으로 프로그래머가 접근할 수 없는 값이다. (keyword : 리터럴) int x = 4; x = x + 2 에서, x+2는 L-Value일까 R-Value일까? x+2에서 x는 컴파일러에서 4라는 값으로 대체해주고, 연산을..
-
[열혈 TCP/IP 소켓 프로그래밍] Chapter1. 내용 확인문제Study/Network 2022. 9. 15. 20:25
01. 네트워크 프로그래밍에서 소켓이 담당하는 역할, 소켓이라는 이름이 붙은 이유 물리적으로 연결된 네트워크망에서 두 컴퓨터간 데이터 송수신을 담당하는 소프트웨어적 장치 소켓이라는 이름이 붙은 이유는, 네트워크망에 '연결'하는 역할을 맡기 떄문 02. 서버 프로그램에서 listen()과 accept() 함수의 역할 listen() 을 통해 연결 요청을 받아들일 수 있는 상태가 되고 accept() 를 통해 들어온 연결 요청을 수락해 데이터를 주고받는다. 03. 리눅스에서는 파일 입출력을 소켓 기반 데이터 입출력에서 활용 가능하지만 윈도우는 아닌 이유 리눅스에서는 파일과 소켓을 같은 파일 디스크립터로 관리하지만 윈도우에서는 소켓 핸들과 파일 핸들을 구분하기 떄문 04. 소켓 생성 이후 주소할당이 필요한 이..
-
[프로그래머스] Level1 - 다트 게임코딩 테스트 2022. 9. 15. 13:36
1. 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 시 해당 점수와 바로 ..
-
[C] 버퍼(stdin)에 대한 이해와 scanf의 문제점Study/C & C++ 2022. 9. 14. 21:07
1. 버퍼(stdin)이란? 컴퓨터에 키보드 등으로 값을 입력할 때, 입력이 완료되기 전에 임시적으로 값을 가지고 있는 저장소 stdin은 특히, c언어에서 키보드 입력을 받는 버퍼이다. 2. scanf함수 scanf() 는 인자로 주어진 서식 지정자 (%d, %c, %s)에 따라 stdin에 저장된 값을 두 번째 인자로 주어진 변수에 할당한다. 이 과정에서 버퍼에 남아 있는 값 때문에, 이상 동작할 수 있다. 3. scanf의 문제점 %c로 값을 받아올 때 문제가 발생할 수 있다. #include int main() { int num; char c; printf("숫자를 입력하세요 : "); scanf("%d", &num); printf("문자를 입력하세요 : "); scanf("%c", &c); re..
-
프로그램이 실행되는 과정 (CPU와 Register, RAM의 작동방식)Study/컴퓨터 구조 & 운영체제 2022. 9. 12. 18:44
알아두어야 할 것 CPU - 명령어를 읽고, 연산을 하는 장치 - 명령어를 읽고, 연산한 결과를 어딘가에 저장해야 함 - CPU는 연산 특화 장치이기 때문에 저장할 공간이 매우 부족하다 - 그래서 CPU 내부에 Register라는 저장 공간을 만듬 - 64bit CPU 중 x86-64 Architecture는 8개의 레지스터, ARM64는 31개의 레지스터를 사용함 - 각 레지스터는 64bit (8byte)의 정보를 담을 수 있다. RAM - CPU의 레지스터만으로는 데이터를 감당할 수 없으므로, 휘발성 메모리 RAM을 저장장치로 이용함 - CPU는 RAM에 명령어들을 저장해놓고 연산을 수행할 때 램에서 읽어들여와서 사용한다. - CPU에서 RAM에 접근하는 속도는 생각보다 느린 편 Cache - RAM..
-
[프로그래머스] Level1 - 문자열 내 마음대로 정렬하기코딩 테스트 2022. 9. 11. 13:45
1. 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 문자열이 저장된 벡터를 함수 인자로 주어진 n 위치의 문자의 알파..
-
[프로그래머스] Level 1 - 시저 암호코딩 테스트 2022. 9. 5. 12:30
1. 문제 설명 알파벳 소문자, 대문자, 혹은 공백으로 이루어진 문자열 s를 받아, 인자로 주어진 n의 거리만큼 밀어낸 새로운 문자열을 리턴하는 함수를 만드는 문제 (단, 공백은 밀어도 공백임) ex) "Aa" 문자열을 3만큼 밀어서 -> "Dd"를 리턴 ex) "a b c" 문자열을 1만큼 밀어서 -> "b c d"를 리턴 2. 풀이 #include #include using namespace std; string solution(string s, int n) { string answer = ""; n = n % 26; int Len = s.length(); for (int i = 0; i < Len; ++i) { int ch = s[i] + n; if (s[i] == ' ') { ch = ' '; }..