본문 바로가기

전체 글

(188)
(파이썬 )백준 10989번 : 수 정렬하기3 / 메모리 초과 극복법 >>문제 >> 메모리 초과 코드 => 평소처럼 리스트를 만들어 하나씩 append 했더니 메모리 초과 뜸 >> 문제의식 1) input() => 메모리 초과 방지를 위해 sys.stdin.readline()으로 수정 2) input을 반복적으로 받기보다, 더 직관적으로 빠르게 읽는 방법이 필요함 => 10001 길이의 리스트를 만들고 리스트의 주솟값에 각 숫자가 나온 횟수를 표시 ex) [0, 1, 1, 0, 2....] 0이 0번 1이 1번 2가 1번 3이 0번 4가 2번 나옴 => 각 리스트값이 0이 아닐때 주솟값을 리스트 값만큼 반복 출력 >>수정한 코드
백준 문제풀이_1065번(한수/등차수열) >>문제 >>예제 입출력 >>idea 위 문제를 풀이하기 위해선 등차수열에 대한 정의를 명확하게 이해할 필요가 있음 >> 수열과 등차수열의 정의 수열 : 수의 나열 등차수열 = 나열된 각 수의 차이가 같음(등차) point1) 두 자리 숫자까지는 모두 등차수열이다. -한 자리 숫자 => 나열된 수가 하나인 수열(초항) ex) 입력값 : 1 => 초항이 1인 등차수열 -두자리 숫자 => 나열된 수가 두개인 등차수열(초항 / 초항+공차) ex) 입력값 : 14 => 1 --- 4 [초항이 1이고 공차가 3인 등차수열] 결론 : 두자리 숫자까지는 모두 등차수열 => 만약 입력값인 n이 두자리 숫자라면 1부터 n까지 모두 등차수열이므로 출력값도 n point2) 세자리 숫자에서 어떻게 각 숫자를 분리할 것인가?..
chapter 4 : 데이터 표현방식의 이해 1) 정수 데이터의 진법 표현 8 진법 : 0으로 시작 10진법 : 별다른 표현법 필요x 16진법 : 0x로 시작 2) 정수 & 실수의 표현방식 >> 정수의 표현 방식 fact1) 정수의 가장 왼쪽의 존재하는 비트(MSB)는 '부호비트'이다 - (+,-)의 부호를 표시 : 양수면 0 / 음수면 1 - MSB를 제외한 비트들 : 정수의 크기를 나타냄 fact2) 음의 정수를 표현할 때에는 2의 보수를 취해야 한다. - 2의 보수 : 반전시킨 후, 1을 더해줌 - 올림수가 버려져서 0으로 ㅏ가득차게 됨 >> 실수의 표현 방식 fact1) 실수 표현의 정밀성은 떨어진다 - 넓은 범위의 실수를 표현가능하나, 실수 표현에는 오차가 존재함 => 가까운 근사치를 활용 - 부동소수점 : 부동소수점 표현방식이 지니는 근..
백준 문제풀이 : 4673번(셀프 넘버) / set 차함수 아이디어 >>4673번 (셀프 넘버) >> 문제 >> 예제출력 >> 내 코드 step by step : 해결의 아이디어 step1. 문제의 해석 답 : 10000 이하의 셀프 넘버를 구하시오 재해석 : 10000이하의 수 중에서 셀프 넘버가 아닌 것을 구하시오 => 즉, 생성자가 있는 것들을 구하면 됨 step2. str을 통해 쉽게 셀프넘버 식 함수만들기 => a라는 문자열이 들어오면 => a를 정수로 바꾸어 sum에 넣음 => a의 각자리 숫자를 차례대로 i에 넣어 더해줌 step3. 함수 값에 넣어진 a에 1~10000의 수를 넣어 비셀프넘버 리스트를 만듬 => 1~10000의 수를 str로 바꾸어 self함수에 넣어줌 => 만약 10000보다 결과물이 작으면 리스트에 넣어주기 => 생성자가 있는 정수들의 ..
백준 문제풀이 - 5597(연속된 정수로 리스트 만들기) / 3052(set으로 중복값 없애기)/ 4344(소수 n번째 자리까지 강제적으로 0채우기) >> 5597번 => 내가 쓴 코드 => 막혔던 점 : 연속된 정수로 리스트 만드는 법을 까먹음 => list_30 = list(range(1,31)) => range는 연속된 정수를 만들어 주는 함수 => list값을 씌워 리스트화시켜줌 >> 3052번 : 나머지 key : set을 활용한 중복값 없애기 => list를 set으로 바꾸면 중복값이 사라진다 => set도 len함수를 지원함 >> 8958번 : OX퀴즈 key1 : 문자열은 반복문에서 리스트처럼 순차적으로 넣을 수 있다. key2 : x가 나오면 점수초기화 / o가 나오면 점수를 더함 >> 4344번 : 평균을 넘을까? 막혔던 부분 : 실수 자리수 조정 => 소수 n번째 자리까지 의무적으로 0을 채우는 방법 실수자리를 조정하는 방법 4가지..
백준 문제풀이 - sys.stdin.readline / 끝을 모르는 테스트 케이스 개수 / 10951 / 더하기 사이클 >>15552번 : 빠른 A+B key : input()함수 => sys.stdin.readline() =>데이터를 읽을 때 시간이 단축 1) sys 모듈 부르기 : import sys 2) sys.stdin.readline() : 사용방법은 input함수와 동일 >> 2439번 : 별 찍기-2 key : 출력시 공간확보+오른쪽정렬 => {0 : >5} => 공간이 5로 고정되어 있지 않음 - n값을 int형태로 바꾸어 받음 - 공백을 n-i만큼 만들기 -1부터 n까지 반복되는 i만큼 "*"을 출력 >> 10951번 : a+b-4 막혔던 점 : 입력의 끝이라는 것을 어떻게 알까? => 테스트 케이스 개수가 정해져있지 않음 key : try - except을 통해 에러가 발생하면 break >> 1110번..
chapter 3. 변수, 연산자, scanf 함수 3-1. 연산을 위한 연산자 / 값의 저장을 위한 변수 연산자 : C언어를 이용해 특정 연산을 요구할 때 사용하는 약속된 기호 int num; // num이라는 변수의 선언 num=12; // 변수 num을 12로 초기화 => 변수를 선언만 하고 초기화하지 않으면 쓰레기 값이 들어감 #변수 선언시 주의해야할 사항들 1) 되도록 중괄호의 앞부분에 위치 2) 변수의 이름은 대소문자를 구분함 => 변수 Num 과 변수 num은 서로 다른 변수임 3) 변수의 이름은 역할에 어울리는 의미 있는 이름을 지어야 함 >> 변수의 자료형 - 정수형 변수 : char, int, short, long - 실수형 변수 : double, float 3-2. C언어의 다양한 연산자 소개 - 대입연산자(=)와 산술 연산자(+, -..
백준 오답 문제풀이 (22_11_10) - 2588번 2588번 아이디어1. 각 값을 리스트에 저장하여 곱셉 아이디어2. 나누기를 사용하여 조절 # memo -> divmod(a,b)는 (몫, 나머지) 튜플을 생성 10171번- 고양이 출력 >> 역슬래쉬를 출력할 때는 \\ 표시를 통해 출력 2480번- 주사위 세개 -> count 함수를 통해 각각 몇번 나왔는지를 저장 -> 이후에 본 숫자값에서 연산