목록전체 글 (601)
sm 기술 블로그
import sys input = sys.stdin.readline S = input().strip() S_repository = set() for i in range(len(S)): for j in range(i, len(S)): tmp = S[i:j+1] S_repository.add(tmp) print(len(S_repository)) 문제요약 문자열이 들어오면 각 부분을 쪼개서 개수를 세시오. 단, 중복은 제외. 해설 문자열을 한글자부터 차근차근 자르기를 이용하면 된다. 파이썬에서는 문자열 슬라이싱을 이용하면된다. for i in range(len(S)): for j in range(i, len(S)): tmp = S[i:j+1] S_repository.add(tmp) 예를들어 Hello가 입력된..
import java.io.*; import java.util.*; class Main { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); HashSet set = new HashSet(); String S = br.readLine(); for(int i = 0; i < S.length(); i++) { for(int j =i; j < S.length(); j++) { set.add(S.substring(i,j+1)); } } System.out.println(set.size()); } } 문제요약 문자열이 들어오면 ..
집합에 다음과 같은 값이 있다고 해보자 HashSet s1 = new HashSet(Arrays.asList(1, 2, 3, 4, 5, 6)); HashSet s2 = new HashSet(Arrays.asList(4, 5, 6, 7, 8, 9)); 차집합 HashSet substract = new HashSet(s1); // s1으로 substract 생성 substract.removeAll(s2); // 차집합 수행 substract를 새로 생성해 주는 이유는 집합자료형을 사용하면 원래 값을 변화하기 때문에 원본에대해 알 수 없어 저장용 집합을 하나 만들어 준것이다. 교집합 HashSet intersection = new HashSet(s1); // s1으로 intersection 생성 interse..
import java.util.*; import java.io.*; public class Main { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); HashSet Aset = new HashSet(); HashSet Aset2 = new HashSet(); HashSet Bset = new HashSet(); br.readLine(); String[] AStr = br.readLine().split(" "); for(int i =0; i 집합자료형 집합에 다음과 같은 값이 있다고 해보자 HashSet s1 = ne..