백준

· C
모처럼 C언어 수업에 복귀하기 위해 교재를 찾아보며 배운 내용을 복기하고 있었는데 조건 연산자라는 개념이 눈에 띄었다. 조건 연산자 (삼항 연산자) 조건 연산자는 유일하게 3개의 피연산자를 가지는 삼항 연산자이다. 조건 ? 참일때: 거짓일때; max_value = (x > y) ? x : y; 위의 식에서 조건 (x > y) 가 참이면 x가 수식의 결과가 되고, (max_value == x 가 되고) 조건 (x > y) 가 거짓이면 y가 수식의 결과가 된다. (max_value == y 가 된다.) 조건식에 괄호는 없어도 되지만, 가독성을 위해서 추가한다. 조건 연산자의 활용 absolute_value = (x > 0) ? x: -x; // 절대값 계산 max_value = (x > y) ? x: y; ..
· Python
백준 10814번 문제를 해결하면서, 파이썬에서 리스트와(sort) 이터러블을(sorted) 배열하는 함수에 어떤 기준을 부여하여 원하는 대로 정렬할 수 있다는 것을 알게 되어 응용하였다. 또한 sorted와 sort에서 key 매개변수를 사용하는 방법은 동일하다. # key 매개변수에 내장 함수 사용 print(list(sorted("This is a test string from Andrew".split(), key=str.lower))) 위는 대소문자를 사용하지 않는 문자열 비교의 예시이다. key는 정렬 기준을 지정하는 매개변수이다. 위 코드의 key=str.lower는 sorted 함수에 전달된 단어를(.split()으로 인해 문자열이 공백을 기준으로 분리되어 문자열 -> 단어화) 소문자로 만들..
· Python
백준 문제를 풀어나가다 10989번 문제를 접했다. 문제는 상당히 간단해 보이지만 조건을 보면 시간과 메모리 제한이 까다롭게 걸려있다. 간단하게 문제를 해결해보기 위해 기존에 풀던 방식으로 접근했다. n = int(input()) nums = [] for i in range(0, n): nums.append(int(input())) nums.sort() for j in range(0, n): print(nums[j]) 결과는 메모리 초과 - > 메모리 초과가 뜨는 이유는 무엇일까? 메모리 초과가 뜨는 이유는 대부분 stack overflow 때문이라고 한다. 이 경우에 따르면 아마 입력받는 모든 수를 리스트에 추가해 버리기 때문에 리스트가 무한정 커져 버리기 때문에 그런 것 같다. # 메모리 초과 해결방..
· C
세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 5월에 스터디 과제로 받았던 문제인데, 내가 가지고 있던 개념만으로는 도저히 해결할 수 없었다. A B C 를 입력받고 곱까지 구하는 데에는 무리가 전혀 없었으나 해당 곱셈의 결과에서 숫자의 개수를 세기 위해서는 int형으로 도출된 곱셈 결과를 문자열 형태로 저장해야 한다고 생각했다. 그래서 int형 값을 문자열 형태로 저장하는 방법에 대해 생각했다 : 근데 저장을 하려면 어차피 값에서 숫자를 하나씩 떼어내야 하는데 문자열로 저장하지 않고 자리수를 떼어내면서 개수를 셀 수는 없을까? scanf_s("%d %d %d", &A, &B, &C); multi..
cho4u4o
'백준' 태그의 글 목록