Problem Solving
-
[백준-python] 1436번: 영화감독 숌Problem Solving/브루트포스 2022. 1. 27. 23:29
분류 - 브루트 포스 난이도 - 실버5 첫 시도 때 숫자를 바로 문자열로 바꿀 수 있다는 걸 모르고 헛수고했다..😂 첫번째 답안 코드 메모리 30864KB, 시간 7256ms # 입력 n=int(input()) # 1부터 시작해 1씩 증가시키며 그 수(i)를 문자열로 바꾸고, "666"이 있으면 카운트(cnt)를 더해줌. # 카운트(c)가 n과 같으면 그 수(i)를 출력하고 종료 i=0 cnt=0 while True: i+=1 j=i num=[] while j>0: num.append(j%10) j=j//10 string="".join(map(str, num)) if "666" in string: cnt+=1 if cnt==n: print(int((i))) break 두 번째 답안 코드 # 입력 n=in..
-
[백준-python] 1018번: 체스판 다시 칠하기Problem Solving/브루트포스 2022. 1. 24. 23:05
분류 - 브루트포스 난이도 - 실버5 4중 반복문은 처음 써본다... 더 심플한 풀이 없나 찾아봐야겠다. 답안 코드 n,m = map(int, input().split()) board=[] for _ in range(n): board.append(list(input())) min_cnt=2500 # 시작점을 (0,0)~(n-8, m-8)로 설정하면서 각 경우의 색칠 횟수를 구하고, 최솟값을 저장함 for r in range(n-8+1): for c in range(m-8+1): cnt=0 # 시작점의 값을 W로 설정할 때 for row in range(r, r+8): for col in range(c, c+8): if ((row%2 == 1 and col%2 == 0) or (row%2 == 0 and ..
-
[백준-python] 7568번: 덩치Problem Solving/브루트포스 2022. 1. 24. 00:18
분류 - 브루트포스 난이도 - 실버5 답안코드 # 입력 n=int(input()) dungchis=[] for _ in range(n): dungchis.append(list(map(int, input().split()))) # 각 학생의 등수를 1로 저장한 후, 덩치가 큰 학생이 발견되면 등수를 1 더함 ranks=[] for i in range(len(dungchis)): rank=1 for j in range(len(dungchis)): if i!=j and dungchis[j][0] > dungchis[i][0] and dungchis[j][1] > dungchis[i][1]: rank=rank+1 ranks.append(rank) # 출력 for rank in ranks: print(rank,e..
-
[백준-python] 2231번: 분해합Problem Solving/브루트포스 2022. 1. 24. 00:01
분류 - 브루트포스 난이도 - 브론즈2 주의사항 생성자를 발견하지 못했을 경우도 잊지 말고 작성해주어야 함 답안 코드 # 입력 n=int(input()) # 1부터 N까지의 수 중 생성자가 발견되면 생성자를, 발견되지 않으면 0을 출력 for i in range(1,n+1): sum=i # i의 분해합을 저장할 변수 num=i # i의 각 자리의 숫자를 나타낼 변수 # i의 분해합을 구함 while num>0: sum=sum+num%10 num=num//10 # i가 n의 생성자면 i를 반복문을 탈출하고 i를 출력 if sum==n: print(i) break # i가 반복문을 탈출하지 못한 채로 끝까지 반복을 수행했다면, 생성자를 발견하지 못한 것이므로 0을 출력 if i==n: print(0)
-
[백준-python] 2798번: 블랙잭Problem Solving/브루트포스 2022. 1. 23. 23:41
분류 - 브루트포스 난이도 - 브론즈2 관련 개념 집합 특징 인덱스로 접근할 수 없다. sum은 가능하다. 주의사항 문제를 잘 읽자. 세 카드의 합이 M을 넘기면 안된다. (질문 게시판 읽어보니 이것 때문에 틀린 분들이 한 둘이 아닌 듯..) 답안 코드 from itertools import combinations # 입력 n, m = map(int,input().split()) cards = list(map(int,input().split())) diff=300000 # (m-세 카드의 합): 최댓값으로 초기화 r_combi = [] # 정답이 되는 세 카드의 조합을 저장할 리스트 # 세 카드의 조합 중 합이 m을 넘지 않는 선에서 (m-세 카드의 합)이 최소가 되는 조합을 구함 for combi in..
-
[백준-C++] 10951번 : A+B -4Problem Solving 2021. 11. 21. 14:49
문제 설명 케이스 개수 입력하는 부분 없이 다짜고짜 테스트 케이스를 이용하라길래 무슨 말인가 했는데, EOF를 이용해서 EOF를 입력 받기 전까지 무한루프를 돌리는 문제였다. C++로 EOF 처리하기 https://heestory0324.tistory.com/10 [C++] EOF(End Of File) 처리하기 EOF란? End Of File의 약자로, 파일의 끝 또는 종료를 의미한다. 흔히 소스코드를 빌드 후 프롬프트 창에서 실행한 것 또한 파일의 실행이므로, 프로그램 종료 또는 무한루프 탈출 조건으로 EOF를 쓰 heestory0324.tistory.com 코드 #include using namespace std; int main(){ int a, b; while(1){ cin >> a >> b; ..
-
[백준-c++] 8958번 : OX퀴즈Problem Solving 2021. 11. 19. 01:43
답안 첫 번째 시도(실패) - 아직도 반례를 모르겠다.. 어디서 틀린 건지 아시는 분 알려주시면 감사하겠습니다(__) 더보기 더보기 #include using namespace std; int main() { ios_base::sync_with_stdio(false); int n; int seq=0, score=0; cin >> n; char ox[n][81]; for(int s=0; s> ox[s]; } for(int s=0; s ox; int score = 0; //총점 int flag=0; //연속 O 여부 int seq_score=1; //연속 O일 때 추가될 점수 for(int i=0; ox[i] != '\0'; i++){ if(ox[i] == 'O'){ flag=1; score += seq_s..