본문 바로가기

연습18

프로그래머뇌 청킹연습/표식찾기연습 - 3 [표식찾기 연습] 1단계 코드베이스 선택 owasp-java-html-sanitizer 에서 HtmlLexer 를 이해하기 위해 필요한 코드들 interface TokenStream { HtmlToken next(); boolean hasNext(); } abstract class AbstractTokenStream implements TokenStream { private HtmlToken tok; public final boolean hasNext() { if (tok == null) { tok = produce(); } return tok != null; } public HtmlToken next() { if (this.tok == null) { this.tok = produce(); } HtmlT.. 2022. 5. 25.
프로그래머뇌 청킹연습/표식찾기연습 - 2 [표식찾기 연습] 1단계 코드베이스 선택 owasp-java-html-sanitizer 에서 HtmlSanitizer 클래스의 sanitize 메서드 public static void sanitize( @Nullable String html, final Policy policy, HtmlStreamEventProcessor preprocessor) { String htmlContent = html != null ? html : ""; HtmlStreamEventReceiver receiver = initializePolicy(policy, preprocessor); receiver.openDocument(); HtmlLexer lexer = new HtmlLexer(htmlContent); // Use .. 2022. 5. 15.
프로그래머뇌 청킹연습/표식찾기연습 - 1 [표식찾기 연습] 1단계 코드베이스 선택 owasp-java-html-sanitizer 에서 PolicyFactory 클래스의 sanitize 메서드 public final class PolicyFactory ... public String sanitize( @Nullable String html, @Nullable HtmlChangeListener listener, @Nullable CTX context) { if (html == null) { return ""; } StringBuilder out = new StringBuilder(html.length()); HtmlSanitizer.sanitize( html, apply( HtmlStreamRenderer.create(out, Handler.DO_.. 2022. 5. 11.
[구현] 자물쇠와 열쇠 2020 카카오 신입 공채 문제다. 먼저 2차원 배열을 시계방향으로 90도 회전시키는 함수다. def rotate_a_matrix_by_90_degree(a): n = len(a) # 행 길이 계산 m = len(a[0]) # 열 길이 계산 # 90도 돌리기 위해서 n, m 위치 변경 result = [[0] * n for _ in range(m)] for i in range(n): for j in range(m): result[j][n-i-1] = a[i][j] return result a = [[0,0], [1,0], [0,1], [0,0]] # 결과 [[0, 0, 1, 0], [0, 1, 0, 0]] print(rotate_a_matrix_by_90_degree(a)) 다음 soultion 함수를 .. 2021. 12. 6.
[구현] 문자열 압축 2020 카카오 신입 공채 문제다. 먼저 단순히 1개 단위로 자르면 어떻게 만들수 있을까 생각하면서 cutByOne 함수를 만들었다. 문자열 s 전체를 for문 돌면서 targetChar 를 이용해 resultS를 만들어갔다. def cutByOne(s): resultS = '' count = 1 targetChar = 'F' for i in range(len(s)): if targetChar == 'F': targetChar = s[i] count = 1 continue if targetChar == s[i]: count += 1 else: if count == 1: resultS += targetChar count = 1 targetChar = s[i] else: resultS += str(count.. 2021. 11. 29.
[구현] 문자열 재정렬 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다. 모든 알파벳을 오름차순으로 정렬하고 마지막엔 모든숫자들을 더한 값을 이어서 출력한다. 입력예시1 input : AJKDLSI412K4JSJ9D output: ADDIJJJKKLSS20 입력예시2 input : K1KA5CB7 output: ABCKK13 내가 작성한 코드는 try except 를 이용했다. 각 문자가 알파벳인지 숫자인지를 if문으로 비교할 수 도 있었지만 문제를 보고 즉시 생각나는것은 try except 였다. 문자 오름차순 정렬은 내장함수 sorted를 이용했기 때문에 쉬웠다. s = input() sum = 0 list = [] for i in range(len(s)): try: sum += int(s[i]) exc.. 2021. 11. 21.