목록전체 글 (34)
zyeon's 작심삼일 코딩 공부
지역변수함수 또는 블록 안에서 정의되고, 해당 함수 또는 블록에서만 사용할 수 있다.#include int main(){ int i; while(i위 코드에서 변수 i는 메인 함수 안에서만 사용가능하고, 변수 temp는 while 루프 안에서만 사용 가능하다. 또, 함수의 매개 변수도 일종의 지역 변수이다. 지역변수는 메모리의 스택 영역을 사용하며, 해당 블록이 시작할 때 메모리 공간이 만들어지며, 끝날 때 초기화 된다. (자동 할당)하지만 저장 유형 지정자를 붙이면 정적 할당으로 바꿀 수 있다. 전역변수함수 외부에서 선언되고, 해당 소스 파일에서 사용 가능하다.메모리의 데이터 영역을 사용한다. 프로그램이 시작할 때 메모리가 생성되며, 프로그램이 종료될 때 메모..
문제 설명자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요.제한 사항n은 1,000,000 이하의 자연수 입니다.입출력 예nresult78831523입출력 예 설명 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 다음 큰 숫자는 23(10111)입니다..
문제 설명괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.입출력 예sanswer"()()"true"(())()"true")()("false"(()("false문제 풀이 1. 맨 앞에 '('가 온다...
문제 설명오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들어..
비트연산자를 배우긴 했었지만 코딩테스트할 때 다른 사람의 풀이에서만 보고, 어디에 쓰이는지 몰랐었다.근데 플래그로 활용할 수 있다고 해서 정리해보려고 한다.비트 연산자연산자의미&비트 AND , 대응되는 비트가 모두 1이면 1 반환|비트 OR , 대응되는 비트 중에서 하나라도 1이면 1 반환^비트 XOR, 대응되는 비트가 서로 다르면 1 반환~비트 NOT, 비트를 1이면 0으로, 0이면 1로 반전지정한 수만큼 비트 왼쪽 이동>>지정한 수만큼 비트 오른쪽 이동플래그 우선 0으로 초기화 된 변수를 만들고, 비트마다 0/1 로 상태를 체크하고자 한다.unsigned int emotion = 0;위의 변수를 사용한다면, 4바이트 크기의 변수이기 때문에, 최대 32가지 상태를 각각 비트에 저장할 수 있다. 임의의 ..
프로그래밍을 할 때, 저장할 데이터의 종류에 따라 다른 자료형을 사용한다.자료형바이트수범위정수형short2-32,768 ~ 32,767int4-2,147,483,648 ~ 2,147,483,647long4-2,147,483,648 ~ 2,147,483,647long long8-9,223,372,036,854,775,808 ~9,223,372,036,854,775,807문자형char1-128 ~ 127논리형bool1false, true (0 ~ 1)실수형float41.2E-38 ~ 3.4E38double82.2E-308 ~ 1.8E308long double82.2E-308 ~ 1.8E308 1바이트 = 8비트 이고, 1비트에는 0또는 1의 값을 저장할 수 있다. 따라서 1바이트에는 2^8가지의 경우의 수를..
C++은 C언어를 기반으로 한, 절차 지향 프로그래밍과 함께 객체 지향, 제네릭 프로그래밍 기능을 모두 사용할 수 있게 한 언어이다. 여기서 절차 지향 프로그램밍이란? 프로시저(함수)를 사용하여 프로그램을 작성하는 방식이다. 주어진 작업을 프로시저로 분리하고 호출하여 프로그램을 동작시킨다. 객체 지향 프로그래밍은 다양한 기능을 하는 객체들을 조합하고 상호 작용하면서 원하는 기능을 수행하게 만드는 작업 방식으로, 코드의 재사용을 목표로 한다. C++의 객체 지향적 기능들클래스(class)하나의 객체의 속성과 동작들을 한곳으로 모아 정의함상속(inheritance)클래스를 상속받아 기존의 코드 재사용 가능다형성(polymorphism)동일한 함수가 객체의 종류에 따라 다르게 동작함연산자 중복(opera..
문제 설명배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.제안사항배열 arr의 크기 : 1,000,000 이하의 자연수배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 ..