컴퓨터 공부 188

[C언어] 4. 반복문

4. 반복문 - for문 내부의 조건에 부합하면 계속해서 특정한 구문을 실행 - 반복문을 탈출하고자 하는 위치에 break구문 넣어준다. for(초기화; 조건; 반복 끝 명령어){ 반복적으로 실행할 부분 } - for문은 1)특정한 초기화 구문을 거칠 수도 있고 이 초기화 구문이 없을 수도 있다. - 다음으로, 2)조건을 만족한다면 실행할 부분을 실행하고 다시 돌아오게 되는데, 3)반복 끝 명령어를 수행하면서 들어왔을 때 조건이 다시 만족한다면 실행할 구문이 또 실행되는 것이다. 이게 계속 반복되는 원리 (예제1) 1부터 100까지의 정수 출력하기 #define _CRT_SECURE_NO_WARNINGS #include int main(void) { for (int i = 0; i

[C언어] 3. 조건문

3. 조건문 - if문 내부의 조건을 검사해 프로그램의 진행 경로를 결정 - if문은 조건의 개수가 많지 않을 때 사용하는 것이 유리하다. (사용은 가능하나 비효율적-else if 조건문(elif 아니다!)이 몇백개 달려도 사용은 가능,else if나 else는 사실 사용하지 않아도 괜찮은 문법) if 조건1 { (조건1에 부합할때) } else if 조건2 { (조건1에 부합하지 않지만 조건2에 부합할때 ) } else { (위 조건들에 모두 부합하지 않을 때) } (예제1) If문 #define _CRT_SECURE_NO_WARNINGS #include int main(void) { printf("손님이 몇 명 왔나요?"); int a; scanf("%d", &a); if (a == 1 || a ==..

[백준/알고리즘/python/java] 2941번 - 크로아티아 알파벳

처음에는 시간초과가 났었던 문제이다. 알파벳을 기준으로 하지말고 기호를 기준으로 제어문을 나누었더니 시간초과문제가 해결되었다. (처음에 풀었던 코드-python) string = input() length = len(string) cnt = 0 idx = 0 while(idx != (length)): if(string[idx] == 'l'): if(string[idx+1] == 'j'): cnt += 1 idx += 2 else: cnt += 1 elif(string[idx] == 'n'): if(string[idx+1] == 'j'): cnt += 1 idx += 2 else: cnt += 1 idx += 1 elif(string[idx] == 'd'): if(string[idx+1] == 'z'): ..

[C언어] 2. 연산자

2.연산자 ex) A+B에서 ‘A’,’B’는 피연산자 ‘+’는 연산자 - 피연산자는 연산에 포함되는 ‘변수’나 ‘상수’를 의미 - '='등호 를 이용해서 우변항을 좌변항에 넣을 수 있다.->자료형에 부합하는 값을 좌변항에 있는 변수에 넣습니다.:할당 - 사칙연산(+,-,*,/) - 나누기는 / 를 사용하는데 몫만 나온다. - %(modular연산)는 나머지를 구할 수 있다. (예제1) 사칙연산 #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int a, b; scanf("%d %d", &a, &b); printf("%d + %d = %d\n",a,b,a+b); printf("%d - %d = %d\n",a,b,a-b); printf("%d * %d ..

[C언어] 1. 기본 입출력

- C언어에서 특정한 변수에 값을 넣기 위해서 scanf()를 사용한다. - 취약한 함수로 분류 되어 있어 Visual Studio 에서는 사용할 수 없도록 제한되고 있다. (visual studio를 제외한 대부분의 IDE에서는 scanf()를 사용해도 컴파일이 진행된다.) - 사용하고 싶으면 맨위에(main밖에) #define _CRT_SECURE_NO_WARNINGS 를 적어주면 적용가능하다. - &는 특정한 변수의 주소를 의미한다. - 앰퍼샌드(ampersnad)라고도 한다. (포인터에서 더 자세하게 다룸) - 이 기호를 사용함으로서 실제로 컴퓨터가 특정한 메모리 주소에 접근해서 데이터를 쓸 수 있도록 (scanf()의 기능을 수행할 수 있도록) 하기 위해서 사용한다. Int- %d로 정수형 데이..

[백준/알고리즘/python/java] 4673번 - 셀프 넘버

이전에 자바로 풀었던 문제를 파이썬을 공부하면서 다시 풀어봤다. 이런 유형의 문제는 일단 숫자를 다 써보면서 이해하는게 빠르다. 문제에서 말하는 셀프 넘버란 생성자가 없는 숫자를 말한다. (여기서 '생성자'란 어떠한 숫자를 만들 수 있는 숫자를 가리킨다.) 쉽게 예를 들어보자면, 1 : 1+1 = 2 를 만들 수 있다. (반면, 1은 어떠한 숫자로도 생성될 수 없다.)-> self_number(o) 2 : 2+2 = 4 를 만들 수 있다. ( 1로 2를 만들 수 있으므로 셀프넘버가 아니다.) -> self_number(x) 3 : 3+3 = 6 을 만들 수 있다. ( 반면, 3은 어떠한 숫자로도 생성될 수 없다.) -> self_number(o) 4 : 4+4 = 8 을 만들 수 있다. ( 2로 4를 만..

[백준/알고리즘/python/java] 1065번 - 한수

이전에 자바로 풀었던 문제를 파이썬을 공부하면서 다시 풀어보았다. 먼저 문제설명을 이해해보면, 100전까지의 모든 양수는 '한수'라는 것을 알 수 있다. 즉, 사용자가 입력한 수가 100보다 작은 수라면, 그대로 그 숫자가 '한수'의 개수이다. 그러면, 사용자가 100 이상의 숫자를 입력한다면, 100부터 사용자가 입력한 수까지 반복문을 돌면서 한수의 조건을 만족하는 등차수열의 공식을 그대로 적용하면 된다. 코드는 아래와 같다. def hansu(number): count = 99 # 100 전까지의 모든 자연수는 '한수'이기 때문에 초기변수를 99로 설정한다. if(number < 100): print(number) else: for i in range(100, number+1): x = str(i) ..

반응형