문자열을 포매팅 할 때 사용하는 함수를 나열한다. 1. %포맷팅 %문자를 사용해서 포매팅 '%+자료형 종류' % 값의 형식으로 사용한다 print("%f" % n) print("%0.0f"% n) print('%d %d' % (a,b)) print('%02d %0.4f' % (a,b)) 형식으로 사용 자료형 문자 정수 %d 실수 %f 문자열 %s 8진수 %o 16진수 %x % %% 여러 개 변수 형태를 알고 있어야 한다. 2. format 함수 내장함수 format()을 사용하여 포매팅 print("이것은 프린터 {0} 입니다." .format(3)) #값 입력 print("{0:02d}.{1:03d}.{2:01d}" .format(a,b,c)) #변수입력 print("{Y:02d}{M:02d}".for..
10진법을 N 진법으로 변환하는 가장 기본은 해당 수로 몫과 나머지를 구해나가며, 나중에 나머지를 역순으로 붙인다는 것이다. python에서는 int 함수나 hex, bin 같은 내장 함수로 10진수를 2,8,16 진수로 바꿀 수 있고, n 진수에서 10진수로 바꾸는 것도 가능하다. 하지만 10진법을 n진법으로 바꾸기 위해서는 따로 설정해주는 함수가 필요한데, 이는 다음과 같다. import string tmp = string.digits+string.ascii_uppercase+string.ascii_lowercase #진수 변환 함수 print(tmp) def convert(num, base) : q, r = divmod(num, base) #몫과 나머지를 구한다. if q == 0 : return ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결을 위한 고민 얼핏 보고 DFS를 고려했으나, 삼각형의 높이가 500개라는 걸 보고 감이 왔다. 이건 DFS로 풀면 안된다고. 만약 DFS로 풀면 어떻게 될까? 경우의 수를 따져보면, DFS로 완전탐색하는데 걸리는 횟수는 1줄일 때 1번, 2줄일때 2번, 3줄일 때 4번, 4줄일 때 8번...이런 식으로 2^(n-1)가 된다. 500줄이면 2^499= 1,636,695,303,948,071,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,00..
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 풀이 import sys a,b = map(int,sys.stdin.readline().split()) c=a%b d=a*b while b!=0: if (a%b)==0: c=b break c=a%b a=b b=c print(c) #유클리드 호제법 print(int(d/c)) #최대공약수 * 최소공배수 = a*b와 같다. 단순한 방법으로는 범위가 넓고 구할 수 없기에, 유클리드 호제법을 사용한다. 유클리드 호제법이란 복잡해 보이지만 쉽게 말하면 a를 b로 나눈 나머..
1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 풀이 n = int(input()) li = list(map(int,input().split())) ans = sum(li) print((ans/n)/max(li)*100) 리스트에 있는 요소들을 받고, 그 수식들의 평균을 출력해주면 되는 단순한 문제이다. 그렇다면 리스트에 있는 모든 수를 더해서 n으로 나눠준다면 일단 평균이 되고, max(li)*100을 통해 고친 평균을 출력해주면 된다. sum이나 for이나 마찬가지지만, sum이 아주 조금은 더 빠르..
https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 풀이 팰린드롬으로 판단하려면 간단하게 앞쪽의 수와 맨 뒤쪽의 수를 비교하면서 가면 된다. 코드로 직관적으로 쉽게 짜면 다음과 같다. import sys li = list(map(int,sys.stdin.buffer.read().rstrip().split())) for i in li: if i==0: break i=str(i) a=0 #첫번째 수의 인덱스 b=-1 #마지막 수의 인덱스 while len(i)!=a:..