728x90
반응형

문자열 6

[파이썬] BOJ_9012(괄호)

문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 해설 처음엔 아무 생각 없이 '('의 개수와 ')'의 개수를 세서 같으면 YES, 다르면 NO를 출력했었는데 그러면 안된다. ')'이 '('보다 먼저 있으면 괄호가 제대로 닫기지 않기 때문이다. 짝을 맞춰보려면 '('이 나왔을 경우 스택에 넣어주고 ')'이 나오면 스택에 들어있던 '('을 pop해준다. 대신 스택에 아무것도 없는데 ')'이 나오면 더이상 볼 것도..

알고리즘/백준 2023.06.26

[파이썬] BOJ_8958(OX퀴즈)

문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 해설 O가 연속해서 나오면 해당 문제의 점수는 연속된 O의 개수가 되기 때문에 다음 문제가 정답(O)인지 / 오답(X)인지 체크해야 한다. 쉽게 O의 개수를 체크하는 변수를 만들어 연속되면 +1을 해주고 그렇게 만들어진 변수의 값을 총 점수를 구하는 변수에 더해주면 된다. 코드 -파이썬 #백준 8958(OX퀴즈) n = int(input()) for i in range(n..

알고리즘/백준 2023.05.21

[파이썬] BOJ_1212(8진수 2진수)

문제 https://www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 해설 https://www.ibm.com/docs/ko/aix/7.1?topic=adapters-ascii-decimal-hexadecimal-octal-binary-conversion-table ASCII, 10진수, 16진수, 8진수, 2진수 변환표 이 테이블에서는 ASCII, 10진수, 16진수, 8진수, 2진수 값 변환에 도움이 되는 정보를 참조할 수 있습니다. 표 1. ASCII, 10진수, 16진수, 8진수, 2진수 값 사이의 변환 ASCII 10진수 16진수 8진수 2진 널(null) ..

알고리즘/백준 2022.08.13

[파이썬] BOJ_2745(진법 변환)

문제 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 해설 이 문제는 파이썬에서 제공하는 int함수를 사용하면 쉽게 풀 수 있지만 그래도 진수 변환 방법만 알면 간단한 알고리즘으로 풀 수 있어서 작성해보았다. 2진수를 10진수로 변경해보았다. 위 방법처럼 계산만 해주면 된다. 우선 받은 문자를 역순으로 뒤집어 주면 편하다. 알파벳인지 숫자인지 구분한 다음, 알파벳이라면 실제 아스키 코드 값에선 A가 65이지만 문제에선 10으로 하기로 했으니 55..

알고리즘/백준 2022.08.12

[파이썬] BOJ_11656(접미사 배열)

문제 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 해설 문자열을 앞에서부터 하나씩 제거해서 리스트에 넣어주면 된다. 코드 -파이썬 #백준 11656(접미사 배열) s = input() arr = [] while True: arr.append(s) s = s[1:] #문자열 첫 글자 제거 if len(s) == 0: break arr.sort() for i in arr: print(i)

카테고리 없음 2022.07.22
728x90
반응형