본문 바로가기

전체 글36

[백준:PYTHON] 단어 수학 목차 문제링크 : https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제 : # 1339_단어수학 *** ## 문제 설명 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 .. 2023. 5. 23.
HTTP vs HTTPS 목차 HTTP (Hyper Text Transfer Protocol) 인터넷 상에서 클라이언트와 서버가 데이터를 주고 받을 때 사용하는 통신 규약 (프로토콜) raw text를 교환하기 때문에 보안 문제 존재. (신호가 탈취될 경우, 내용이 그대로 노출됨) 80번 포트 사용 HTTPS (Hyper Text Transfer Protocol Secure) HTTP의 문제점을 보완 (+ 암호화) 클라이언트와 서버는 SSL 프로토콜을 사용하여 통신. https는 텍스트를 암호화 (대칭키/ 비대칭키 모두 사용) 443 포트 사용 암호화 대칭키 암호화 : 클라이언트와 서버가 동일 키로 암호화/복호화 진행 -> 속도 빠름/ 키 노출시 위험 비대칭키 암호화 : 1쌍의 공개키/개인키 사용 -> 속도 느림/ 안전 공개키로.. 2023. 5. 10.
자바 배열 출력 예시 int [] arr1 = new int []{1,2,3,4,5}; System.out.println("arr1 toString: "+ Arrays.toString(arr1)); int [][] arr2= new int [][]{{1,2,3},{4,5,6},{7,8,9}}; System.out.println("arr2 toString:"+ Arrays.toString(arr2)); System.out.println("arr2 deepToString: "+ Arrays.deepToString(arr2)); 출력 결과: 결론 - 1차원 배열 요소 출력 : `Arrays.toString()` - 2차원 배열의 요소 출력 : `Arrays.deepToString()` 사용 2023. 5. 9.
bj 구간합구하기5 목차 내 코드 더보기 # 코드보기 import sys n,m = map(int,sys.stdin.readline().split()) dp = [ [0] * (n + 1) for _ in range(n + 1)] numbers = [0]*n for i in range(n): numbers[i] = list(map(int,sys.stdin.readline().split())) # 누적 합 for i in range(1, n + 1): for j in range(1, n +1 ): dp[i][j] = numbers[i - 1][j - 1] + dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1] for _ in range(m): x1,y1,x2,y2 = map(int, sys.s.. 2023. 5. 8.
[백준] 1004_어린왕자 목차 🔐문제 풀이 시행착오 두 점 간의 거리 구하는 공식은 다음과 같다 이 공식을 응용하여 문제를 풀었다. - 만약 두 점 사이의 거리가 반지름 보다 작다면, 점이 원 안에 포함되어 있다 - 따라서, 거리가 반지름 보다 작다면 cnt를 중가시켜, 총 개수를 구한다 - point 0과 point1, point2와 point3은 세트 이므로, 다음과 같이 작성한다 import sys def isIn(points , x,y,r): cnt = 0 for i in range(0,4,2): #0,2 if ((points[i]-x)**2 + (points[i+1]-y)**2) 2023. 2. 20.
[프로그래머스] 3진법 뒤집기 목차 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [ 풀이과정 (로직) ] - 3진법으로 변경 후, 리스트에 추가 -> 10진법으로 변경한다 - 3진법으로 변경시, n을 3으로 나누고 난 나머지를 리스트에 추가 - 가장 나중에 나온 값이 리스트의 0번째 값이 되므로, reverse를 해줄 필요는 없겠다 [ Solution 1 ] def solution(n): result , target = 0, 3 lst = [] # 3진법 구화기 while(n): lst.append( n%target ) n = n//3 # 10 진법으로 변경 for i in rang.. 2023. 1. 1.
[PROGRAMMERS] 12세 이하인 여자 환자 목록 출력하기 목차 문제 설명 PATIENT 테이블에서 12세 이하인 여자환자의 모든 정보를 조회하는 SQL 문 작성. 전화번호가 없는 경우 "NONE": 으로 출력 결과는 나이기준으로 내림차순하고 같은 나이의 환자는 이름순으로 오름차순 정렬하라. 코드 SELECT PT_NO, PT_NAME, GEND_CD, AGE, CASE WHEN TLNO IS NULL THEN "NONE" ELSE TLNO END AS TLNO FROM PATIENT WHERE AGE = 90 THEN "A" WHEN (SCORE >= 80 AND SCORE = 70 AND SCORE 2022. 11. 27.
[Git] 에러 모음 목차 Failed to push some refs to 원 인 : 로컬에는 파일이 없는 파일이 원격 저장소에만 저장되어있는데 push할 경우에 발생하는 오류이다 해 결 : pull 한 뒤에 다시 push 하면 된다 Pulling is not possible because you have unmerged files 원 인 : 로컬이랑 원격에 같은 파일이 있는데 로컬에서 아직 merge가 되지 않았다고 인식했기 때문에 발생한 오류 해 결: git commit -am "커밋메세지" 이런식으로 커밋메세지를 남기면 다시 잘 작동한다. (출처 : https://velog.io/@2ujin/%EA%B9%83-Pull-is-not-possible-because-you-have-unmerged-files-%EC%97%9.. 2022. 11. 25.
약수 효율적으로 찾기 목차 모든 경우를 탐색 : O(N) def getDiv(num): lst = [] for i in range(1,num+1): if num % i ==0 : lst.append(i) return lst print(getDiv(100)) # [1, 2, 4, 5, 10, 20, 25, 50, 100] 위의 코드의 경우 1부터 100까지 하나하나 비교하여 약수를 찾는다. 만약 1억의 약수를 구하고자 한다면, 1억 번을 반복해야 한다. 시간 복잡도가 O(N) 이기 때문에 수가 커질 수록 런타임 초과 오류 발생 확률이 높아진다. 효율적 탐색 : O(√N) 1부터 √N까지 수 중 나누어 떨어지는 수를 찾고, N을 해당 값으로 나눈다 만약 100의 약수를 구한다면, √100 = 10이므로, 100은 1.. 2022. 11. 23.