반응형

공부 261

[DataBase] Oracle SQL 내장 함수 - 1 (문자 함수) UPPER / LOWER / INITCAP / SUBSTR / LENGTH / INSTR / REPLACE / LPAD / RPAD / CONCAT

SQL 내장 함수에는 여러 가지 종류가 있다. 이번에는 그 중에서 문자 함수에 대해 다뤄보도록 한다. 1. 대 소문자를 바꿔주는 UPPER, LOWER, INITCAP 함수 UPPER(문자열) : 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환 LOWER(문자열) : 괄호 안 문자 데이터를 모두 소문자로 변환하여 반환 INITCAP(문자열) : 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환 select ename, upper(ename), lower(ename), initcap(ename) from emp; 예시 테이블에서 문자함수를 이용하여 사원들의 이름을 각각 대문자, 소문자, 첫글자만 대문자로 바꿀 수 있다. 2. 문자열 일부를 추출하는 SUBSTR 함수 -..

[C] 백준알고리즘 #1712 손익분기점

고정 비용 A, 가변 비용 B, 제품 가격 C가 주어졌을 때 손익분기점을 구하는 문제이다. 단순 계산으로 놓고 봤을 때 가변 비용보다 제품 가격이 낮다면 언젠가는 이익이 나는 구간이 있고, 가변 비용이 제품 가격보다 높다면 손익분기점이 존재하지 않는다고 볼 수 있다. 따라서 B >= C 라는 조건일 경우에는 손익분기점이 존재하지 않으므로 -1을 출력하고 아닌 경우만 계산해주면 된다. 손익분기점이 존재한다면 (고정비용 + 가변비용) 보다 (제품 판매 수익금) 이 높아져야 하므로 (A+B*x) = (C*x) 가 되는 x를 구하면 된다. A = Cx - Bx A = (C-B)x x = (C-B) / A 가 되는 것을 알 수 있다. 다만 '/' 연산자는 나머지를 날려버리기 때문에 손익분기점보다 조금 못미치는 경..

[DataBase] Oracle SQL 기본문법 - 2 (Where절, 연산자의 종류)

WHERE 절은 조회할 행을 선별하기 위한 조건식이다. 조건식의 결과 값이 true인 행만 출력한다. 즉 내가 원하는 열 값만 출력하거나 수정할 수 있게 해준다. 간단한 예시를 보자 select * from emp where deptno = 30; emp 테이블의 모든 정보를 조회하지만 where 절을 통해서 deptno(부서번호) 가 30인 정보만 출력하도록 했다. 이와 같이 where 뒤에는 조건식이 들어와야 하므로 연산자가 잇따르는 경우가 많다. 이 연산자에 대해 알아보도록 하자 1) 논리 연산자 - A AND B : A와 B 조건을 모두 만족하는 것 - A OR B : A 또는 B의 조건을 만족하는 것 (둘중에 하나라도 만족하는 것) - NOT A: 논리 부정 연산자. (A가 아닌 것) AND 연..

[DataBase] Oracle SQL 기본 문법 - 1 (SELECT, FROM)

위의 예시 테이블을 이용하여 기본 문법을 알아보도록 하자. 1. SELECT FROM - 데이터베이스 SQL문을 작성할 때에 가장 기본이 되는 것은 SELECT 문과 FROM 문이다. - SELECT는 조회할 열을 선택하는 것이고 FROM은 이 열이 어떤 테이블인지 조회하는 구문이다. select * from emp; 애스터리스크(*)은 전체를 선택한다는 의미이다. 위 구문은 emp 테이블의 모든 열을 선택한다는 의미이므로 결과1과 같이 테이블의 전체 정보가 출력되었다. select ename, empno, sal from emp; 결과 2에서는 모든 정보가 아닌 emp테이블에서 이름, 사원번호, 급여만 조회되는 것을 알 수 있다. select문에서 ename과 empno, sal을 선택했기 때문이다. ..

[C] 백준알고리즘 #1065 한수

양의 정수 X를 입력받아 이 X의 각 자리수가 등차수열을 이루는지 판단하는 함수를 작성하는 문제이다. 먼저 X를 파라미터로 받는 함수를 han()이라고 한다. 각 자리수를 저장할 변수 a,b,c를 생성한다. 1 ~ 99 까지의 수는 모두 한수이고, 1000은 한수가 아니다. 이 조건식을 먼저 만들어준다. int a, b, c; //100자리, 10자리, 1자리 저장할 변수 if (i == 1000) { return 0; } else if (i < 100) { return 1; } 그리고 a b c 에 각 자리수를 입력해준다. a = i / 100; b = (i % 100) / 10; c = i % 10; 이제 100의자리에서 10의자리를 뺀 값(a - b)과 10의자리에서 1의자리를 뺀 값(b - c) ..

[C] 백준알고리즘 #15596 정수 N개의 합

정수 n개가 주어졌을 때 n개의 합을 구하는 함수를 구하는 문제이다. 먼저 제출을 누르면 다음과 같이 정답 양식이 나온다. long long sum(int *a, int n) { long long ans = 0; return ans; } 위 양식에 맞추어 함수를 만들어주면 되겠다. *a는 정수가 저장된 배열을 가리키는 포인터이고 n은 정수의 개수를 나타낸다. 따라서 long long sum(int *a, int n) { long long ans = 0; for (int i = 0; i < n; i++) { ans += a[i]; } return ans; } 위와같이 for문을 이용하여 파라미터로 전달받은 a배열에서 n개만큼 반복하여 ans에 더해주면 된다. 이를 이용하여 main함수도 만들어보자. #in..

もの의 여러가지 의미 정리

もの는 흔히 食べ物(음식물)처럼 물건. 물질이라는 의미로 많이 사용되지만 의미가 매우 다양하다. 1. ものだ。 - 일반적으로 당연한 것. 보통의 것, 진리 등에 붙여서 사용. ~인 것이다. - 年を取るとだんだん足が弱くなるものだ。 ->나이가 들면 점점 다리가 약해지는 법이다. (당연한 것이다.) - 海外企業と取引するのは難しいものだ。 -> 해외 회사와 거래하는 것은 어렵다. (어려운 법이다.) 위 예문처럼 일반적인 사실에 もの를 붙이는 경우가 있는데 이럴 때에는 ~인 것이다. ~인 법이다 등으로 해석된다. 2. ものだ。 - 감동, 놀람 등을 강조 - 今日でもう五日間雨が降り続いている。まったくよく降るものだ。 -> 오늘로 벌써 5일째 비가 계속 내리고 있다. 참 잘도 오는군. - 時の経つのは早いものだ。私たち夫婦も..

日本/日本語 2021.01.27

[C] 랜덤함수를 이용한 로또번호 생성기

지난번에 사용했던 랜덤함수를 사용하여 로또번호를 생성해보도록 하자. int n[6] = { 0 }; int tmp; int con = 0; 먼저 변수는 6개의 숫자를 저장할 배열을 생성한다 tmp는 오름차순으로 정렬할 때 임시로 숫자를 저장해 둘 변수이다. con은 계속 진행할 지 아닌지를 판단하는 변수이다. srand(time(NULL)); for (int i = 0; i < 6; i++) { n[i] = rand() % 45 + 1; for (int j = 0; j < i; j++) { while (1) { if (n[j] == n[i]) { n[i] = rand() % 45 + 1; } else break; } } } 다음은 for문을 이용하여 6개의 번호를 차례대로 n배열에 저장한다. 그리고 n ..

C/실습 2021.01.22

[C] 백준알고리즘 #4344 평균은 넘겠지

학생들의 점수를 입력받아 평균을 넘는 학생들의 비율을 계산하는 문제이다. 먼저 변수부터 설정한다. int t, n; int stu[1000]; int count, sum; double avg, result; 테스트 케이스의 수를 입력받을 t변수 테스트케이스 별로 학생들의 수를 입력받을 n변수 학생의 수가 최대 1000명이므로 각 학생들의 점수를 저장할 배열 stu[1000] 평균값을 넘는 학생 수를 세는 count변수 학생들의 총합을 저장할 sum변수 sum변수를 이용해 평균값을 저장할 avg변수 count변수를 이용해 비율(결과)을 계산하기 위한 result 변수 이렇게 총 7개의 변수가 사용되었다. 전체 코드를 보자 #include int main() { int t, n; int stu[1000]; ..

[C] 백준알고리즘 #8958 OX퀴즈

OX퀴즈의 점수를 구하는 문제이다 단순히 O의 개수를 구하는 문제가 아니라 O가 연속될수록 점수가 1점 2점 3점... 으로 늘어나기 때문에 주의해야 한다. 먼저 입력조건에 80보다 작다고 했으니 80의 크기를 가진 배열을 생성해준다. 각 점수를 넣을 score 변수와 점수를 합할 sum변수도 만들어준다. #include #include int main() { int n; int score, sum; char str[80]; scanf_s("%d", &n); for (int i = 0; i < n; i++) { sum = 0; score = 0; scanf_s("%s", str, 80); for (int j = 0; j < strlen(str); j++) { if (str[j] == 'O') { scor..

반응형