1. 문제 11179번: 2진수 뒤집기 희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은. www.acmicpc.net 입력받은 n을 2진법으로 나타낸 뒤, 2진법을 나타낸 수를 뒤집는다. 그리고 그 수를 다시 10진법으로 변환시켜 출력하는 문제이다. 2. 코드 n=int(input()) arr=bin(n) #10진수 n을 2진수로 변환 , arr타입은 str arr=arr[2:] #0b를 없애주자! 3번째 수부터 출력 arr_reverse=arr[::-1] #뒤집어주기 num=int(arr_reverse,2) print(num) 3. 문제풀이 - 우선 2진수와 10진수 ..
Koala - 7기/기초 알고리즘 스터디
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 문제 분석 나는 이 문제를 정상적인 체스판과 '다른' 부분들의 개수를 찾는 것이라고 생각했다. 여기서 정상적인 체스판이란 8 x 8의 W부터 시작하는 체스판과 B부터 시작하는 체스판, 2 종류이다. 프로그래밍이니 B와 W라는 표현은 적합하지 않으므로, 각각 0과 1로 치환하여 2차원 벡터를 만들었다. => 이 두 벡터는 chess1, chess2라 명명한다. 멀쩡한 체스판과 '다른' ..
2729번: 이진수 덧셈 (acmicpc.net) 2729번: 이진수 덧셈 이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십 www.acmicpc.net 문제분석 분류 수학 구현 사칙연산 문제설명 입력 출력 소스코드
문제 https://www.acmicpc.net/problem/14561 14561번: 회문 n진수는 base가 n인 수를 말한다. 예를 들어 십진수는 base가 10인 수이다. n진수의 수 AmAm-1Am-2…A1A0를 n진수로 표현해보면 AmAm-1Am-2…A1A0 = Am × nm + Am-1 × nm–1 + Am-2 × nm–2 + … + A1 × n1 + A0 × n0이다. www.acmicpc.net 코드 풀이 입력받은 m,n을 이용하여 n진수를 출력한다. 이때 m이 0일 경우 0을 출력한다.
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제분석 0을 입력할 경우 스택에서 하나씩 값을 지운다. 소스코드 k = int(input()) money = list(int(input()) for _ in range(k)) money_list = [0] for i in range(k): if money[i] == 0: money_list.pop() else: money_list.append(money[i]) ..
https://www.acmicpc.net/problem/11068 11068번: 회문인 수 어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력 www.acmicpc.net 10진수를 입력 받고, 그 수를 2~64진수로 바꾼 수가 회문이 되는지를 확인하는 문제이다. 2~64진수로 바꾼 총 63개의 숫자 중 한 개라도 회문이 된다면 1을 출력, 그렇지 않다면 0을 출력하면 된다. 전형적인 회문 문제처럼 리스트에 {입력값%n진수}를 차곡 차곡 담는 방식으로 풀 수 있다. 다만, 문제의 예시처럼 15, 15를 각각 F, F로 바꿔주는 과정은 불필요하다. n진..
17502번: 클레어와 팰린드롬 (acmicpc.net) 17502번: 클레어와 팰린드롬 입력으로 주어진 문자열을 팰린드롬이 되도록 '?' 문자들을 적절한 알파벳 소문자들로 바꾸어 출력합니다. 방법이 여러 가지인 경우 그 중 하나만 출력합니다. www.acmicpc.net 문제분석 분류 구현 문자열 문제설명 입력 출력 소스코드
https://www.acmicpc.net/problem/14582 14582번: 오늘도 졌다 첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다. 두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 www.acmicpc.net 문제 소스 코드 문제 풀이 G팀이 항상 승리하는 경우에서 그것이 역전승이면 "Yes" 아니면 "No" 출력 G팀의 역전승이 되려면 J팀이 점수를 낼 수 있는 9회 '초'까지 J팀의 점수가 앞서는 경우가 한 번 이상 있어야한다. J팀이 앞서는 경우가 있는지 경기의 '초'와 '말' 사이에 if문을 이용하여 확인했다.
[나의 풀이 방법] - 문자열을 받을 개수를 입력하고 그 수만큼 반복하며 문자열 입력 - 입력받은 문자열에서 문자를 가져와 ord 함수를 이용해 아스키 코드로 변환 - set로 만들어 중복 값이 없도록 설정 - 반복하면서 입력받은 문자의 아스키 코드가 아닌것들만 모음 - 더한 값을 출력
https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 해석 연속되어 있는 단어들 중, 앞서 나온 단어가 후에 동떨어져서 출현한다면, 해당 단어는 그룹 단어가 아니다. 따라서 스트링으로 받고, 연속되는 지점이 끊기는 지점 (ex- aaabc에서 마지막 a에 해당하는 지점)에서 해당 문자가 뒤쪽 스트링에 나타나는지 확인하여 나타난다면 no를, 나타나지 않는다면 yes를 출력한다. 코드
문제 도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는다. 정확하게 24시간이 되는 순간이 아니면 잡지 않는 CTU 특수요원이다. 2008년 3월 3일 월요일, CTU는 새학기에 맞춰 핵폭탄을 날리겠다는 테러 정보를 입수했다. CTU에서는 특수요원 도현이에게 이 임무를 맡겼다. CTU의 프로그래머 준규는 이 사건의 배후가 김선영이란 것을 해킹을 통해 밝혀내었다. 도현이는 선영이를 임무를 시작한지 정확하게 24시간이 되는 순간에 잡으려고 한다. 만약 지금 시간이 13:52:30이고, 임무를 시작한 시간이 14:00:00 이라면 도현이에게 남은시..