프로그래밍 101

파이썬 divmod( ) 와 %, // 차이

divmod( ) 두 개의 숫자를 인자로 받아, 나눠지는 수를 나누는 수로 나눈 몫과 나머지를 튜플 형식으로 반환하는 함수 >> divmod(num1, num2) ( num1//num2, num1%num2 ) divmod( ) 와 %, // 차이는? divmod( )보다 %, // 연산 수행 시 더 많은 Opcode(명령코드) 실행 => 인자값의 크기가 그렇게 크지 않은 경우 %, // 연산이 더 빠르지만, 인자값의 크기가 매우 커지면 divmod( ) 연산이 더 빠르다. 내용 참고 : https://stackoverflow.com/questions/30079879/is-divmod-faster-than-using-the-and-operators Is divmod() faster than using th..

프로그래머스 lv0. 배열 두 배 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/120809 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답 : 1 2 3 4 5 def solution(numbers): answer = [] for element in numbers: answer.append(element*2) return answer cs 개선안 : 1 2 def solution(numbers): return [num*2 for num in numbers] cs 리턴에서 바로 두배 만들기와 배열 반복 연산을 하면 코드가 훨씬..

프로그래머스 lv0. 두 수의 곱

https://school.programmers.co.kr/learn/courses/30/lessons/120804 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답 : 1 2 3 4 def solution(num1, num2): answer = 0 answer=num1*num2 return answer cs 개선안 : 1 solution = lambda num1, num2 : num1 * num2 cs 이것도 람다식을 이용하면 코드 짧아짐

프로그래머스 lv0. 몫 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120805 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답 : 1 2 3 def solution(num1, num2): answer = num1//num2 return answer cs 파이썬에서 몫(정수)을 구하는 연산자 : // 개선안 : 1 2 3 def solution(num1, num2): answer = int(num1/num2) return answer cs 나눗셈 후에 정수형으로 형변환해주는 방법도 있다.

프로그래머스 lv0. 두 수의 차 - 람다식

https://school.programmers.co.kr/learn/courses/30/lessons/120803 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답 : 1 2 3 def solution(num1, num2): answer = num1-num2 return answer cs 개선안 : 1 solution = lambda num1, num2 : num1 - num2 cs 다른 사람들 풀이를 보니, 람다식을 쓰면 한줄로 풀 수 있었다.

프로그래머스 lv0. 두 수의 합 - return에서 연산

https://school.programmers.co.kr/learn/courses/30/lessons/120802 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 답 : 1 2 3 def solution(num1, num2): answer = num1+num2 return answer cs 개선안 : 1 2 def solution(num1, num2): return num1+num2 cs return에서 바로 연산해서 넘겨주면 코드 짧아짐

[백준_1152] 단어의 개수

https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net #include int main() { char S[1000000];//문자열 입력받는 배열 선언 gets(S);//입력 문자 한 줄 전체 입력 받음 int count = 0; int k = 0; if (S[0] != ' ') {//입력 문자 첫 글자가 빈칸이 아니면 count값 1 증가 count++; } while (S[k]) {//문자열이 끝날 때 까지 반복 if (S[k] == ' '..

프로그래밍/C 2022.03.01

[백준_10809] 알파벳 찾기

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 내가 처음 제출한 코드 #include int main() { char S[100]; scanf("%s", &S); int num[26]; for (int k = 0; k < 26; k++) { num[k] = -1; } for (int i = 0; i < sizeof(S); i++) { if (num[S[i]-'a'] == -1) { num[S[i]-'a'] = i; } } for ..

프로그래밍/C 2022.02.26

[백준_11720] 숫자의 합

https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 띄어쓰기나 구분 표시 없이 입력되는 숫자를 어떻게 하나씩 떼어 계산하지? ㄴ 정수로 받아서 10씩 나눠가며 한자리씩 값을 얻어야 하나? -> 근데 문자열 카테고리에 있는 문제니까 문자열을 이용해야겠지 정수를 문자열로 입력받으려면 어떻게? sprintf를 이용해야 하나? #include int main() { int n, sum = 0; scanf("%d", &n);//입력할 숫자 갯수(n) 정수형 입력 char input[100];//둘째줄에 입력할 숫자를 넣을 배열(n이 최대 ..

프로그래밍/C 2022.02.26

[백준_2577] 숫자의 개수(배열 0으로 초기화)

int num[10] = { 0, }; while (result > 0) { num[result % 10]++; result /= 10; } for (int i = 0; i < 10; i++) { printf("%d\n", num[i]); } 자릿수에 해당하는 num 인덱스 값을 증가시켜줌 예를 들어, 자릿수가 2면 num[2]의 값 1 증가, 자릿수가 8이면 num[8]의 값 1 증가하는 방식 이렇게 하면 내가 작성한 코드 10~28행을 아래와 같이 짧게 줄일 수 있다. #include int main() { int a, b, c; int result; scanf("%d %d %d", &a,&b,&c); result = a * b * c; int num[10] = { 0, }; while (result..

프로그래밍/C 2022.02.20