본문 바로가기

분류 전체보기233

[Java] SWEA 1258번 행렬찾기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 dfs를 사용하여 문제의 조건을 처리하였습니다. 마지막으로 정답을 출력하기전에 각 사각형의 행과 열이 큰 순으로 만약 같다면 행의 길이가 작은 순이 먼저 정렬되게하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import j.. 2021. 3. 16.
[Python] 메뉴 리뉴얼 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이 각 order별 길이가 cnt인 만들 수 있는 조합을 전부 만들고 가장 많이 만들어진 조합을 구해 해결했습니다. 이때, 조합이 만들어진 최대 개수가 1이라면 문제의 조건에따라 제외해야합니다. orders의 안에있는 메뉴들의 순서를 알파벳으로 정렬해야 해결이 됬습니다. 코드 from itertools import combinations def solution(orders, course): answer = [] # orders 리스트 안의 내용들을 각각 알파벳 .. 2021. 3. 15.
[Java] SWEA 4613번 러시아 국기 같은 깃발 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 맨 첫번째(0)와 맨 마지막 열(N)을 제외한 나머지 열마다 만들 수 있는 색의 모든 부분집합을 만들어 가장 최소한으로 색을 새로 칠하는 칸을 찾게하여 해결했습니다. 이때, 모든색은 반드시 한번씩 나와야하므로 부분집합을 만들때 맨 마지막 열(N) - 2인 열까지 전부 'W'일 경우 마지막에는 'B'를 추가해야합니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public .. 2021. 3. 15.
[Python] 정규표현식 (계속 추가예정) 사용하고자하는 정규표현식을 문자열에 미리저장해서 complie()에 사용이 가능! import re # .은 어떤 문자열도 상관없다는 의미 # *은 몇 개가 와도 상관없다는 의미 # ., *을 따로따로 적용이 가능 s = ".*X.*Y.*" p = re.compile(s) m = p.match("asdaXWYgsdg") if m: print("ㅇㅇ") else: print("ㄴㄴ") # 결과 # ㅇㅇ re.findall을 사용하여 정규표현식에 해당하는 모든 값을 찾을 수 있다. import re # \D+는 숫자가 아닌 문자로 반복되는 모든 문자를 의미 # 반대로 \d+는 숫자인 문자로 반복되는 모든 문자 # 문자열이 아닌 변수가 올 수 있다. find_list = re.findall('\D+', "th.. 2021. 3. 14.
[Python] 문자열을 일정 길이로 자르기 seq='f09f9989x'; length=2; [seq[i:i+length] for i in range(0, len(seq), length)] # 결과 # ['f0', '9f', '99', '89', 'x'] seq='f09f9989x'; length=2; [''.join(x) for x in zip(*[list(seq[z::length]) for z in range(length)])] # 결과 #['f0', '9f', '99', '89'] seq='f09f9989x'; length=2; map(''.join, zip(*[iter(seq)]*length)) # 결과 # ['f0', '9f', '99', '89'] 참고 사이트 Split String into n-size pieces « Python re.. 2021. 3. 14.
[Python] 문자열 압축 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 우선 문자열이 한개만 올 수 있으므로 해당 경우를 처리했습니다. 다음으로, 문자열을 1개부터 최대로 자를 수 있는 개수인 len(s) / 2 만큼까지 각각 일정하게 잘라 리스트에 저장했습니다. 그 다음 반복문을 통해 리스트의 인덱스를 사용해서 이전의 값과 같다면 압축을 할 수 있으므로 cnt를 +1 시켜주었습니다. 그리고 만약 다를경우 cnt가 1이라면 이전의 자른 문자가 한 번만 나온것이므로 그대로 압축문자열에 저장해주고 1보다 클 경우에는 압축이.. 2021. 3. 14.